본문 바로가기

개발/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 프로그래밍을 훨씬 더 간편하게 할 수 있습니다. 데이터베이스와의 연결, 쿼리 실행, 예외 처리 등을 손쉽게 처리할 수 있으며, 유지보수에도 유리한 코드를 작성할 수 있습니다.

반응형

자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!