Spring Boot JDBC
spring boot에서 JDBC를 사용하는 방법에 대해서 살펴본다
Spring Boot JDBC
Spring Boot JDBC를 사용하기 위해서는 다음과 같은 의존성이 필요하다.
org.springframework.boot spring-boot-starter-jdbc
com.oracle.database.jdbc ojdbc8
빌드 프레임워크에 따라 다음과 같이 추가하거나 프로젝트 생성 화면에서 설정한다.
spring-boot-starter-jdbc
를 설정할 경우 다음과 같이 종속된 의존성이 추가된다.
프로젝트 생성
boot05jdbc
프로젝트를 생성한다.
프로젝트 정보 입력


Maven일 경우 추가되는 항목
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
Gradle일 경우 추가되는 항목
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: '2.7.3'
implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.7.0.0'
기본 설정 사용
Spring Boot에서는 제공되는 설정을 통해 JDBC 설정을 수행할 수 있다.
application.properties
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=hacademy
spring.datasource.password=hacademy
Configuration 생성
제공되는 설정 외 직접 구현하고 싶은 경우에는 @Configuration
을 생성하여 도구를 직접 등록할 수 있다.
Package 생성

Configuration class 생성
생성한 패키지 내부에 DatabaseConfiguration
이라는 이름으로 클래스를 작성한다.

Bean 생성
Configuration 내부에 @Bean
생성 코드를 작성한다.
@Bean
public DriverManagerDataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("oracle.jdbc.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
dataSource.setUsername("hacademy");
dataSource.setPassword("hacademy");
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
return jdbcTemplate;
}
생성된 Bean은 Spring에서 자체적으로 Component scan을 통하여 Spring Container에 등록하므로 프로젝트 내 어디서든 사용 가능하다. 또한 Bean 생성 시 매개변수로 선언된 항목들은 Spring에서 가능한 요소를 찾아서 주입(Injection) 처리한다.
등록된 Bean 확인
Spring Actuator를 통해 등록된 Bean을 확인할 수 있다. 위의 두 가지 방법 중 하나를 사용하여 등록하였다면 다음과 같이 등록된 bean에서 찾을 수 있다. 이 문서에서는 Configuration 생성방식으로 구현하였다.

Bean 사용
등록이 완료된 Bean은 다음과 같은 Annotation으로 사용할 수 있다.
@Autowired
- 일치하는 타입의 대상을 찾아 주입하는 Annotation@Qualifier
-@Autowired
와 같이 사용하여 대상의 식별 ID를 사용하여 주입하는 Annotation
원하는 클래스 내부에 다음과 같이 필드를 선언하여 사용한다.
@Autowired
private JdbcTemplate jdbcTemplate;
@Qualifier
와 같이 사용할 경우는 다음과 같이 작성한다.
@Autowired @Qualifier("jdbcTemplate")
private JdbcTemplate jdbcTemplate;
일반적으로 @Qualifier
는 동일한 타입의 객체가 두 개 이상이어서 @Autowired
만으로 식별이 불가능한 상황일 경우 사용한다.
Last updated