sql 직접 사용 시 Jdbc 템플릿은 아주 좋은 선택지.
저번에도 봤겠지만, 리포지토리에서 반복되는 try catch 부분이랑 커넥션 반환해주는 것 까지 그러 한 어떤 crud 할 때 중복적으로 들어가지는 부분들을 템플릿 하나로 해결했었다.
그냥 템플릿에 sql, 바인딩될값들만 넣어주면 됐었다.
select의 경우에는 추가로 Mapper까지.
거기다 자동으로 스프링 런타임 예외로 변환까지
트랜잭션을 다루기 위한 커넥션 동기화 까지 해준다는데..
이거는 그냥 @Transactional하면 쓰레드로컬에 커넥션 맡겨놨다가,
커넥션을 얻어올 때 JdbcUtils였나 그걸로 얻어오면 그 쓰레드로컬에 있던 커넥션 얻어오는 거 아님?
Jdbc템플릿이 그렇게 해준다고 트랜잭션을 다루기 위한 커넥션 동기화까지 해준다고 하는건가봄.
스프링의 jdbc 라이브러리에 딸려오는 것이라 스프링 jdbc 라이브러리 깔면 바로 사용할 수 있다.
또, 별도의 설정 없이 그냥 쓰면 된다.
단점은 동적 sql을 해결하기 어렵다고 한다.
일단, jdbc템플릿이랑 h2 db 사용할 거니까,
build.gradle에 종속성 라이브러리로
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.h2database:h2'
추가.
'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글
8. 구현한 Jdbc로 갈아 끼우기. (0) | 2023.10.08 |
---|---|
7. Jdbc 템플릿 + h2를 리포지토리 구현체로 (0) | 2023.10.08 |
5. DB생성 (0) | 2023.10.08 |
4. 테스트 환경 (0) | 2023.10.08 |
3. 간이 프로젝트의 설정부 (0) | 2023.10.07 |