Member 두개를 만들어두었다.
MemberRepositoryV0
V0은 직접 JDBC의 DriverManger를 사용한다. (가장 low 레벨)
SQLException 시 log를 남기고 e를 위 클래스로 던지자. (class에 throws SQLException)
만약 throw new RuntimeException(e); 했으면 이건 CheckedException인 SQLException을 RuntimeException으로 변환하여 터트리므로 throws SQLException 할 필요가 없다. ( RuntimeException은 UncheckedException 이므로 잡아줄 필요없다 - 중요)
finally에서 pstmt 와 con 을 닫아주어야한다. (연결의 역순)
-> 외부의 리소스를 쓰는 중이다. 실제 TCP/IP 커넥션 걸려있음.
-> 안 닫아주면 계속 리소스 낭비가 된다.
근데 만약 pstmt.close(); 에서 Exception이 터진다면?
-> 위 클래스로 throws 되어 con.close() 가 실행이 안된다.
이렇게 메서드로 빼서 다 잡아주었다.
딱 봐도 PreparedStatement 는 Statement를 상속함.
pstmt에 파라미터 바인딩 기능 추가.
항상 리소스 정리 해주자.
ResultSet은 조회용인데 나중에 알아보자.
MemberRepositoryV0Test
memberV0, 10000 이 INSERT 된다.
# 본 게시글은 인프런 김영한님의 강의를 수강 후 반복학습을 위해 정리한 내용입니다.
꾸준히 다시보자.
1. 221014
2. 221031
'Java, Spring > Spring DB 1' 카테고리의 다른 글
1-8. JDBC 개발 - 수정, 삭제 (0) | 2022.09.22 |
---|---|
1-7. JDBC 개발 - 조회 (0) | 2022.09.22 |
1-5. 데이터베이스 연결 (중요) (1) | 2022.09.21 |
1-4. JDBC와 최신 데이터 접근 기술 (0) | 2022.09.21 |
1-3. JDBC 이해 (0) | 2022.09.21 |