spring boot에서 JdbcTemplate 사용
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
위와 같이 jdbc 를 추가하고, @Configuration에 Bean을 추가하면 된다.
private final DataSource dataSource;
@Bean
public ItemRepository itemRepository() {
return new JdbcTemplateItemRepository(dataSource);
}
실제 사용은 아래와 같이
public class JdbcTemplateItemRepositoryV1 implements ItemRepository {
private final JdbcTemplate template;
public JdbcTemplateItemRepositoryV1(DataSource dataSource) {
this.template = new JdbcTemplate(dataSource);
}
테스트코드에서 DB테스트
test/resources 에 별도 application.properties 추가해서, Test시에 사용할 DB정보 셋팅
테스트 DB는 h2를 embedded 로 이용하면, 별도로 DB가 구동되어 있지 않아도 테스트가 가능하다. (test에 별도 config만 분리해두면, datasource 부분은 주석으로 해 두어도, 자동으로 임베디드로 생성해 주기도 한다.)
spring.profiles.active=test
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
spring.datasource.username=sa
spring.datasource.password=
test/resources/schema.sql 에 초기화할 DDL 문 등을 넣어놓으면 기동시 자동 생성(디폴트 설정이 EMBEDED일때 동작)
반응형