inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

NullPointerException

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. java.lang.NullPointerException: Cannot invoke "hello.jdbc.repository.MemberRepositoryV1.save(hello.jdbc.domain.Member)" because "this.memberRepository" is null memberRepositoryV1.save 하는 과정에서 널포인터익셉션이 났습니다. package hello.jdbc.repository; import hello.jdbc.connection.DBConnectionUtil; import hello.jdbc.domain.Member; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.support.JdbcUtils; import javax.sql.DataSource; import java.sql.*; import java.util.NoSuchElementException; /** * JDBA - DataSource 사용, JdbcUtils 사용 */ @Slf4j public class MemberRepositoryV1 { private final DataSource dataSource; public MemberRepositoryV1(DataSource dataSource) { this.dataSource = dataSource; } public Member save(Member member) throws SQLException { String sql = "insert into member(member_id, money) values (?,?)"; Connection con = null; PreparedStatement pstmt = null; try { con = getConnection(); pstmt = con.prepareStatement(sql); pstmt.setString(1, member.getMemberId()); pstmt.setInt(2, member.getMoney()); pstmt.executeUpdate(); return member; }catch (SQLException e) { log.info("db error", e); throw e; }finally { close(con, pstmt, null); } } public Member findById(String memberId) throws SQLException { String sql = "select * from member where member_id=?"; Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; try { con = getConnection(); pstmt = con.prepareStatement(sql); pstmt.setString(1, memberId); rs = pstmt.executeQuery(); if (rs.next()) { Member member = new Member(); member.setMemberId(rs.getString("member_id")); member.setMoney(rs.getInt("money")); return member; } else { throw new NoSuchElementException("member not found memberId=" + memberId); } } catch (SQLException e) { log.info("db error", e); throw e; }finally { close(con, pstmt, rs); } } public void update(String memberId, int money) throws SQLException { String sql = "update member set money=? where member_id=?"; Connection con = null; PreparedStatement pstmt = null; try { con = getConnection(); pstmt = con.prepareStatement(sql); pstmt.setInt(1, money); pstmt.setString(2, memberId); int resultSize = pstmt.executeUpdate(); log.info("resultSize={}", resultSize); }catch (SQLException e) { log.info("db error", e); throw e; }finally { close(con, pstmt, null); } } public void delete(String memberId) throws SQLException { String sql = "delete from member where member_id=?"; Connection con = null; PreparedStatement pstmt = null; try { con = getConnection(); pstmt = con.prepareStatement(sql); pstmt.setString(1, memberId); pstmt.executeUpdate(); }catch (SQLException e) { log.info("db error", e); throw e; }finally { close(con, pstmt, null); } } private void close(Connection con, Statement stmt, ResultSet rs) { JdbcUtils.closeResultSet(rs); JdbcUtils.closeStatement(stmt); JdbcUtils.closeConnection(con); } private Connection getConnection() throws SQLException { Connection con = dataSource.getConnection(); log.info("get connection={}, class={}", con, con.getClass()); return con; } } package hello.jdbc.repository; import com.zaxxer.hikari.HikariDataSource; import hello.jdbc.connection.ConnectionConst; import hello.jdbc.domain.Member; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.jdbc.datasource.DriverManagerDataSource; import java.net.URL; import java.sql.DriverManager; import java.sql.SQLException; import java.util.NoSuchElementException; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @Slf4j class MemberRepositoryV1Test { MemberRepositoryV1 repository; @BeforeEach void beforeEach() { //기본 driverManager - 항상 새로운 커넥션을 획득 // DriverManagerDataSource dataSource = new DriverManagerDataSource(ConnectionConst.URL, ConnectionConst.USERNAME, ConnectionConst.PASSWORD); //커넥션 풀링 HikariDataSource dataSource = new HikariDataSource(); dataSource.setJdbcUrl(ConnectionConst.URL); dataSource.setUsername(ConnectionConst.USERNAME); dataSource.setPassword(ConnectionConst.PASSWORD); repository = new MemberRepositoryV1(dataSource); } @Test void crud() throws SQLException { //save Member member = new Member("memberV2", 10000); repository.save(member); //findById Member findMember = repository.findById(member.getMemberId()); log.info("findMember={}", findMember); log.info("member != findMember {}", member == findMember); assertThat(findMember).isEqualTo(member); //update repository.update(member.getMemberId(), 20000); Member updateMember = repository.findById(member.getMemberId()); assertThat(updateMember.getMoney()).isEqualTo(20000); //delete repository.delete(member.getMemberId()); assertThatThrownBy(() -> repository.findById(member.getMemberId())) .isInstanceOf(NoSuchElementException.class); } }

  • spring
  • mvc
  • spring-jdbc
아가미 댓글 2 좋아요 0 조회수 326

h2 초기 실행 문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

The Web Console server could not be started. Possible cause: another server is already running at http://192.168.0.25:8082 Root cause: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: bind" [90061-224] Exception in thread "main" org.h2.jdbc.JdbcSQLNonTransientConnectionException: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: bind" [90061-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:212) at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:211) at org.h2.util.NetUtils.createServerSocket(NetUtils.java:177) at org.h2.server.web.WebServer.start(WebServer.java:412) at org.h2.tools.Server.start(Server.java:548) at org.h2.tools.Console.runTool(Console.java:216) at org.h2.tools.Console.main(Console.java:72) Caused by: java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(Net.java:565) at java.base/sun.nio.ch.Net.bind(Net.java:554) at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:636) at java.base/java.net.ServerSocket.bind(ServerSocket.java:391) at java.base/java.net.ServerSocket.<init>(ServerSocket.java:278) at java.base/java.net.ServerSocket.<init>(ServerSocket.java:171) at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:207) ... 5 more cmd 에서 h2.bat 실행 시 이렇게 포트가 이미 사용중이라고 뜨는데요 포트 번호 바꿔서 사용해도 될까요? 8083 같은거로요!

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 674

테스트 할 때 궁금한점입니다!

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 테스트 코드를 작성하다가 궁금한점입니다! assertion을 사용할 때 JUnit이 아닌 AssertJ 를 추천하는 이유가 있을까요?

  • spring
  • mvc
  • spring-jdbc
김태헌 댓글 1 좋아요 0 조회수 233

값을 안넘겨주면 똑같이 저도 에러가 나긴 하는데 왜 콘솔창에는 warn이 안뜰까요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서는 warn이 뜨고 name이 없다라는 콘솔문구가 뜨는데 저는 창을 들어가보면 에러는 똑같이 나는데 warn이 안뜨네여..

  • java
  • spring
  • mvc
  • spring-boot
댓글 2 좋아요 1 조회수 333

실행이 되지 않습니다.

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] java 와 gradle jvm 버전을 17.0.10으로 설정하고 돌렸습니다. 이런 오류가 발생해서 Upgrade Gradle wrapper to 7.2 version and re-import the project를 클릭해서 grdle 버전을 업그레이드 했습니다. 다시 돌리니 이번에는 Cause: class lombok.javac.apt.LombokProcessor (in unnamed module @0x689bd195) cannot access class com.sun.tools .javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools .javac.processing to unnamed module @0x689bd195 lombok과 관련된 오류가 발생해서 구글에 검색해보고 롬복 버전을 바꿨습니다. 다시 돌려봤는데 또 에러가 발생했습니다.. java 버전과 gradle jvm 버전을 맞췄는데 왜 오류가 발생하는지 모르겠어서 질문드립니다..

  • spring
  • mvc
eoyeong 댓글 2 좋아요 0 조회수 504

헤더 - 컨텐츠 - 푸터 영역을 나누고 싶은데 방법이 있을까요..?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예 [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 ! 영한 선생님 강의를 들으면서 토이 프로젝트를 진행 중에 있습니다. 다름이 아니라 th:replace를 활용해 템플릿 영역을 헤더, 컨텐츠, 푸터 세 개의 영역이 나뉘어 지지 않고 컨텐츠 코드들이 헤더, 푸터 영역을 침범하더라구요.. header.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <div th:fragment="header"> <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top"> <div class="container-fluid"> <a class="navbar-brand" href="#">갱이</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">SNS</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> ONLINE SHOP </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">NEW ARRIVAL</a></li> <li><a><hr class="dropdown-divider"></a></li> <li><a class="dropdown-item" href="#">OUTER</a></li> <li><a class="dropdown-item" href="#">TOP</a></li> <li><a class="dropdown-item" href="#">BOTTOM</a></li> <li><a class="dropdown-item" href="#">A/C</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> COMMUNITY </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" th:href="@{/board/notice}">NOTICE</a></li> <li><a class="dropdown-item" th:href="@{/board/review}">REVIEW</a></li> <li><a class="dropdown-item" th:href="@{/board/qna}">Q&A</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link disabled" aria-disabled="true">Disabled</a> </li> </ul> <form class="d-flex" role="search"> <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success" type="submit">Search</button> </form> </div> </div> </nav> </div> </html> footer.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <div class="footer bg-dark fixed-bottom text-white" th:fragment="footer"> <footer> <div class="container"> <ul class="nav justify-content-center pb-3 mb-3"> <li class="nav-item"><a href="#" class="navi-link px-2">Home</a></li> <li class="nav-item"><a href="#" class="navi-link px-2">MyPage</a></li> <li class="nav-item"><a href="#" class="navi-link px-2">FAQ</a></li> <li class="nav-item"><a href="#" class="navi-link px-2">About</a></li> </ul> </div> <!-- SNS 링크 --> <ul class="nav justify-content-center"> <li><a href="https://facebook.com/example"><i class="fab fa-facebook px-2 text-white"></i></a></li> <li><a href="https://twitter.com/example"><i class="fab fa-twitter px-2 text-white"></i></a></li> <li><a href="https://instagram.com/example"><i class="fab fa-instagram px-2 text-white"></i></a></li> <li><a href="https://pinterest.com/example"><i class="fab fa-pinterest px-2 text-white"></i></a></li> </ul> </footer> </div> <!-- Font Awesome 아이콘 JS --> <script src="https://kit.fontawesome.com/a076d05399.js"></script> </html> layout1.html <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- Font Awesome 아이콘 CSS --> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"> <!-- Required meta tags --> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> <!-- Custom styles for this template --> <link th:href="@{/css/layout.css}" rel="stylesheet"> </head> <body> <!-- th:fragment=header.html 로 치환--> <div th:replace="~{fragments/header :: header}"></div> <div layout:fragment="content" class="content"></div> <!-- th:fragment=footer.html 로 치환--> <div th:replace="~{fragments/footer :: footer}"></div> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script> </body> </html> 혹시 해결 방안이 있을지 조심스레 여쭤드립니다.. 항상 좋은 강의 자료 주셔서 감사합니다 !

  • spring
  • mvc
l-o-bin 댓글 2 좋아요 0 조회수 385

수업시간에 선생님께서 보시는 베어 정리본은 어디서 볼 수 있나요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 수업시간에 선생님께서 보시는 베어 정리본은 어디서 볼 수 있나요?

  • java
  • spring
  • mvc
  • spring-boot
gomwoong0619 댓글 1 좋아요 0 조회수 296

h2 에서 연결 시험에서 오류가 나시는 분들께

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 연결 시험 에서 실패하시는 분들은 바로 연결 을 누르시면 됩니다. 저는 연결 시험 에서 실패하길래 뭐가 문제인지 찾다가 연결 을 누르니 db 가 정상적으로 생성되네요. 참고 하세요!

  • spring
  • mvc
  • spring-jdbc
뚜비 댓글 2 좋아요 4 조회수 565

27강 이미지업로드 질문입니다.

미해결

[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]

코드를 비교해봤을 때 틀린 부분 없이 작성했는데 웹페이지에서 이미지가 업로드 되지가 않습니다. 파일 업로드를 진행했을 때 저장소에는 파일이 잘 업로드가 되고 웹페이지에서 검사를 진행했을때 td부분에 img가 나오지 않습니다. 왜 이런걸까요?

  • spring
  • mvc
  • ajax
  • pojo
댓글 1 좋아요 1 조회수 199

extract method static 질문있습니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

강사님이 하시는것 처럼 ctrl+ alt + m 해서 extract method 하는데.. 강의에서 보면 private void printStartLine 이렇게 non-static 으로 나오는데.. 제가 하면 private static void printStartLine로 나옵니다 이거 왜그런거일까요?

  • spring
  • mvc
toylu 댓글 1 좋아요 0 조회수 457

http 요청 후 로직 순서 질문

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

http 요청을 받으면 서블릿 컨테이너가 그 요청한 url과 같은 urlPatterns를 가진 서블릿 객체를 찾는다. → @WebServlet(name=” “, urlPatterns =” “) 서블릿 컨테이너가 받은 요청에 따라 HttpServletRequest req를 생성하고, HttpServletResponse resp 를 준비해둔다. 이를 1번에서 찾은 서블릿 객체에 넘겨준다. 해당 서블릿 객체는 자신의 service(req, resp) 메소드를 실행한다. 이렇게 이해했는데 맞을까요?

  • spring
  • mvc
김지호 댓글 1 좋아요 0 조회수 198

@ScriptAssert에서 javascript

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 jdk17 이상부터는 @ScriptAssert에서 자바스크립트를 지원하지 않아서 오류가 뜨는데 17버전 이상부터는 @ScriptAssert를 어떻게 사용하나요??

  • spring
  • mvc
강민석 댓글 2 좋아요 0 조회수 928

플러그인을 찾을수 없다고 나옵니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] start.spring.io 에서 강의 와 다른 스프링부트 버전 3.2.3 으로 했고 packaging = jar ,java 버전 21 로 설정을 했습니다. 인텔리 제이에서 실행 결과 id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' 두개의 플러그인을 찾을수 없다고 뜨는데 무슨 문제 일까요?

  • java
  • spring
  • mvc
  • spring-boot
ryu 댓글 1 좋아요 0 조회수 799

h2 데이터베이스는 preparestatement를 구현하고 있는 것일까요?

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. JDBC 개발에 있어 제일 핵심이 되는 내용은 JDBC는 인터페이스이고 각각의 데이터베이스는 이 JDBC인터페이스를 구현하여 제공하고 있기에, 개발자들은 JDBC를 통해 다양한 데이터베이스를 용이하게 사용할 수 있는 점인 것 같습니다. preparedStatement는 JDBC 의 3가지 기능인 1. Connection 획득 SQL 전달 결과 조회 중 두 번째 SQL 전달과 관련된 기능이라 생각되는데요. 그런 prepareStatement는 Connection 인터페이스 안에 있는 메서드였고, Statement를 상속하고 있는 또 다른 인터페이스인 PreparedStatement 타입인 것을 알게 되었습니다. 1) 그렇다면 Preparedstatement 또한 JDBC의 일부분이고, h2데이터베이스는 이 PreparedStatement에서 지정해놓은 메서드들을 구현하고 있다고 생각해도 되는지 궁금합니다. 2) Connection 인터페이스든 Statement 인터페이스이든 package를 보면 java.sql 에 속해 있는데, java.sql 패키지 자체가 jdbc라고 생각해도 되는지 궁금합니다.

  • spring
  • mvc
  • spring-jdbc
노동준 댓글 1 좋아요 0 조회수 255

Merge 관련해서 질문드립니다.

미해결

실전! 스프링 데이터 JPA

안녕하세요 영한님, 정말 좋은강의 잘 듣고있습니다. Merge관련해서 질문이 하나있는데요..! 아래 두 method 모두 시작할때 persistence context가 비어있고 찾는 entity가 db에 있다고 가정할때 비슷한 (혹은 같은) flow로 진행될까요? 여기서 method parameter, Entity e,는 업데이트될 (id가 set되어있고 field가 업데이트 되어있는)객체입니다. @Transactional public void updateEntity(Entity e){ Entity foundEntity = em.find(Entity.class, e.getid()); foundEntity.setFieldOne("New Data"); } @Transactional public void updateEntity(Entity e){ em.merge(e); } Merge를 꼭 써야하는건 아니지만, 그냥 동작 메커니즘이 궁금해서 질문드립니다. Merge를 쓰는게 Update전에 항상 Select query로 db에서 객체를 조회하기때문에 쓰기를 지양하라고 하시는건가요, 아니면 merge를 쓸때 또 다른 downside가 있나요?

  • spring
  • spring-boot
  • jpa
  • java
SeokHoon Kim 댓글 1 좋아요 0 조회수 231

세이브서블릿에서 파싱할 수 있는 이유

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예 [질문 내용] /servlet/members/new-form 에서 전송한 http 메시지를 Member Save Servlet에서 getParameter로 파싱할 수 있는 건, Member Form Servlet의 html 코드 부분 "<form action=\"/servlet/members/save\" method=\"post\">\n" 에서 action=/servlet/members/save 로 작성하여, 이것이 곧 Member Save Servlet의 urlPattern과 같기 때문인가요?

  • spring
  • mvc
김지호 댓글 1 좋아요 0 조회수 204

bindingResult 질문 있습니다

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] bindingResult에서 field명은 Model의 멤버변수 이름과 동일하게 사용해야하나요? objectName은 item말고 다른거로 바꿔도 정상적으로 동작하는데 field를 임의로 바꾸면 에러가 발생하네요

  • spring
  • mvc
eoyeong 댓글 1 좋아요 0 조회수 221

@component

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

@component 에노테이션 사용할때 @componentScan 없이도 자동으로 스프링 빈으로 등록이 되나요? 아니면 @ServletComponentScan이 이미 있기때문에 그런건가요??

  • spring
  • mvc
댓글 1 좋아요 0 조회수 283

안녕하세요 복습은 어떤식으로 하면 되나요

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

안녕하세요 복습은 어떤식으로 하면 되나요

  • python
  • 웹-크롤링
닉네임을 등록해주세요 댓글 1 좋아요 0 조회수 258

자바 코드에 직접 html을 작성하는것은 매우 불편한데 다른 방법으로는 할 수 없나요?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 지금 강의 방법처럼 html을 작성하여 반응해주는것은 매우 불펴난것 같은데 html파일 자체를 링크하여 반응해주는 방법도 있나요?

  • spring
  • mvc
양치잘하기 댓글 2 좋아요 0 조회수 332

인기 태그

인프런 TOP Writers

주간 인기글