JDBC 프로그래밍 실습
프로젝트 생성
dependencies 설정
implementation('com.zaxxer:HikariCP:5.0.1')
implementation('org.springframework:spring-jdbc:5.3.22')
testImplementation('org.assertj:assertj-core:3.22.0')
testImplementation('com.h2database:h2:2.1.214')
간단한 CRUD
① SetUp Method 생성
테스트 코드를 실행하기 전 수행해야 하는 작업을 작성한다(테이블 생성 or 초기 데이터 수행).
sql 파일을 읽어 테이블을 생성한다.
sql 파일을 실행한다.(이때, 데이터 소스도 함께 가져와야 한다.)
② 데이터 소스를 받아오기 위한 객체를 생성한다.
HikariCP를 통해 데이터 소스를 받아온다.
DB 관련 설정(setDriverClassName, setJdbcUrl, setUsername, setPassword)
③ resources 패키지에 ①번에서 지정한 sql파일을 생성하여 User 테이블을 생성하는 Schema를 작성한다.
User 테이블 : 아이디, 패스워드, 이름, 이메일
④ 테이블을 생성하는 테스트 코드를 작성한다.
UserDao객체를 생성한다.
DB 작업을 수행할 때 UserDao에게 작업을 위임한다.
> UserDao에게 해당 정보를 DB에 저장해달라 요청한다.
> UserDao에게 지정한 ID에 해당하는 유저 정보를 조회해달라 요청한다.
조회한 정보가 User객체에 저장한 정보와 일치하는지 확인한다.
⑤ User객체를 생성한다.
Getter와 객체와의 비교를 위한 equals() and hashCode()를 생성한다.
⑥ UserDao객체를 생성한다.
getConnection() : Connection을 받아오는 메서드를 구현한다.(JDBC URL, ID, PW 필요)
create() : Connection을 받아온 다음 실행할 SQL를 작성하여 INSERT 쿼리를 수행한다.(User객체 Getter)
> 코드를 거꾸로 읽었을 때 만나는 순서대로 자원을 해제 한다.(PreparedStatement > Connection)
findByUserId() : Connection을 받아온 다음 실행할 SQL를 작성하여 SELECT 쿼리를 수행한다.(메서드 인자)
> 코드를 거꾸로 읽었을 때 만나는 순서대로 자원을 해제 한다.(ResultSet > PreparedStatement > Connection)
실습 과정의 흐름을 잘 정리한 다음 포스팅에 추가해놔야지.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/43z0P6S
#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
'Java > [패스트캠퍼스] 50일 포트폴리오 챌린지' 카테고리의 다른 글
[11일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.18 |
---|---|
[10일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.17 |
[8일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.15 |
[7일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.14 |
[6일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.13 |