본문 바로가기

개발/JAVA

[Spring] JdbcTemplate 사용법

반응형

Java에서 데이터베이스에 접근할 때, JdbcTemplate을 사용하면 간편하게 데이터베이스 연동 작업을 처리할 수 있습니다. 이번 글에서는 JdbcTemplate을 활용한 기본적인 사용법을 소개합니다.

JdbcTemplate이란?

JdbcTemplate은 Spring Framework에서 제공하는 유틸리티 클래스입니다. 이 클래스는 데이터베이스에 접근하기 위해 JDBC API를 간소화하여 예외 처리 및 리소스 관리를 자동으로 처리해 줍니다. 이를 통해 개발자는 SQL 쿼리 실행, 데이터 매핑 등을 훨씬 간편하게 할 수 있습니다.

1. 의존성 추가

먼저, Spring 프로젝트에 JdbcTemplate을 사용하려면 의존성을 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음과 같은 의존성을 추가합니다:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.9</version>
</dependency>

2. DataSource 설정

JdbcTemplate을 사용하려면 먼저 DataSource를 설정해야 합니다. DataSource는 데이터베이스 연결 정보를 포함하고 있습니다. 아래는 Spring에서 DataSource를 설정하는 예시입니다.

@Configuration
public class DatabaseConfig {
@Bean
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("username");
dataSource.setPassword("password");
return dataSource;
}
}

3. JdbcTemplate 빈 등록

JdbcTemplate은 DataSource를 사용하여 생성됩니다. DataSource가 준비되면 JdbcTemplate 빈을 등록합니다. 아래는 JdbcTemplate 빈을 등록하는 방법입니다:

@Configuration
public class AppConfig {
@Autowired
private DataSource dataSource;
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource);
}
}

4. SQL 쿼리 실행

JdbcTemplate을 사용하면 SQL 쿼리를 간단하게 실행할 수 있습니다. 가장 기본적인 예로 데이터를 조회하는 방법을 소개합니다.

@Autowired
private JdbcTemplate jdbcTemplate;
public List<User> getUsers() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
}

5. 데이터 삽입

데이터를 삽입하려면 update 메서드를 사용합니다. INSERT, UPDATE, DELETE와 같은 쿼리는 이 메서드를 통해 실행할 수 있습니다.

public int insertUser(User user) {
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
return jdbcTemplate.update(sql, user.getName(), user.getEmail());
}

6. 트랜잭션 관리

JdbcTemplate은 트랜잭션을 관리하는 기능을 제공합니다. 트랜잭션을 사용하여 여러 SQL 쿼리를 묶어서 실행할 수 있습니다. 예를 들어, 데이터베이스에 여러 개의 삽입 쿼리를 실행할 때 트랜잭션을 사용하면 하나라도 실패할 경우 모든 변경사항을 롤백할 수 있습니다.

@Autowired
private DataSource dataSource;
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource);
}
@Transactional
public void addUserTransaction(User user1, User user2) {
insertUser(user1);
insertUser(user2);
}

결론

Spring의 JdbcTemplate을 사용하면 JDBC 프로그래밍을 훨씬 더 간편하게 할 수 있습니다. 데이터베이스와의 연결, 쿼리 실행, 예외 처리 등을 손쉽게 처리할 수 있으며, 유지보수에도 유리한 코드를 작성할 수 있습니다.

반응형