-
[김영한 스프링] 03. JdbcTemplate 소개와 설정Spring/스프링 DB 2편 - 데이터 접근 활용 기술 2024. 1. 6. 00:07
JdbcTemplate 소개와 설정
SQL을 직접 사용하는 경우에 스프링이 제공하는 JdbcTemplate은 아주 좋은 선택지다. JdbcTemplate은 JDBC를 매우 편리하게 사용할 수 있게 도와준다.
장점
- 설정의 편리함
- JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있는데, 이 라이브러리는 스프링으로 JDBC를 사용할 때 기본으로 사용되는 라이브러리이다. 그리고 별도의 복잡한 설정 없이 바로 사용할 수 있다.
- 반복 문제 해결
- JdbcTemplate은 템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해 준다.
- 개발자는 SQL을 작성하고, 전달할 파리미터를 정의하고, 응답 값을 매핑하기만 하면 된다.
- 우리가 생각할 수 있는 대부분의 반복 작업을 대신 처리해 준다.
- 커넥션 획득
- statement를 준비하고 실행
- 결과를 반복하도록 루프를 실행
- 커넥션 종료, statement, resultset 종료
- 트랜잭션 다루기 위한 커넥션 동기화
- 예외 발생 시 스프링 예외 변환기 실행
단점
- 동적 SQL을 해결하기 어렵다.
JdbcTemplate 설정
dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } tasks.named('test') { useJUnitPlatform() }
- org.springframework.boot:spring-boot-starter-jdbc를 추가하면 JdbcTemplate이 들어있는 spring-jdbc가 라이브러리에 포함된다.
- 여기서는 H2 데이터베이스에 접속해야 하기 때문에 H2 데이터베이스의 클라이언트 라이브러리(Jdbc Driver)도 추가하자.
- runtimeOnly 'com.h2database:h2'
추가되는 부분
//JdbcTemplate 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' //H2 데이터베이스 추가 runtimeOnly 'com.h2database:h2'
JdbcTemplate은 spring-jdbc 라이브러리만 추가하면 된다. 별도의 추가 설정 과정은 없다.
주의!
진행하기 전에 먼저 H2 데이터베이스에 item 테이블을 생성해야 한다.
drop table if exists item CASCADE; create table item ( id bigint generated by default as identity, item_name varchar(10), price integer, quantity integer, primary key (id) );
출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-2/dashboard
'Spring > 스프링 DB 2편 - 데이터 접근 활용 기술' 카테고리의 다른 글
[김영한 스프링] 06. JdbcTemplate - SimpleJdbcInsert & 기능 정리 (0) 2024.01.09 [김영한 스프링] 05. JdbcTemplate - 이름 지정 파라미터 (1) 2024.01.09 [김영한 스프링] 04. JdbcTemplate 적용 (1) 2024.01.06 [김영한 스프링] 02. 데이터 접근 기술 프로젝트 구조 설명 (2) 2024.01.04 [김영한 스프링] 01. 데이터 접근 기술 진행 방식 소개 & 프로젝트 설정과 메모리 저장소 (1) 2024.01.03 - 설정의 편리함