[java] Apache DbUtils의 데이터베이스 연결 관리

Apache DbUtils는 Apache Commons 프로젝트의 일부로, 자원 해제데이터베이스 연결 관리를 단순화하는 유틸리티 라이브러리입니다. 이 라이브러리를 사용하면 데이터베이스 관련 코드를 간결하게 유지할 수 있으며, 중복된 코드를 피할 수 있습니다. 이번에는 Apache DbUtils를 사용하여 Java 애플리케이션에서 간단한 데이터베이스 연결을 관리하는 방법에 대해 살펴보겠습니다.

의존성 추가

먼저 Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 DbUtils 의존성을 추가합니다:

<dependency>
    <groupId>commons-dbutils</groupId>
    <artifactId>commons-dbutils</artifactId>
    <version>1.7</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다:

dependencies {
    implementation 'commons-dbutils:commons-dbutils:1.7'
}

의존성을 추가한 후에는 프로젝트를 새로고침하여 라이브러리를 가져옵니다.

데이터베이스 연결 관리

데이터베이스 연결 설정

먼저, 데이터베이스 연결을 설정하는 코드를 작성합니다:

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseManager {
    private static final String URL = "jdbc:mysql://localhost:3306/mydb";
    private static final String USER = "username";
    private static final String PASSWORD = "password";

    private DataSource dataSource;

    public DatabaseManager() {
        this.dataSource = setupDataSource();
    }

    private DataSource setupDataSource() {
        /* 데이터베이스 속성 및 연결 풀 설정 */
    }

    public Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
}

쿼리 실행

이제 Apache DbUtils의 QueryRunner 클래스를 사용하여 쿼리를 실행할 수 있습니다:

public class DataRetriever {
    private DatabaseManager databaseManager;

    public DataRetriever(DatabaseManager databaseManager) {
        this.databaseManager = databaseManager;
    }

    public void retrieveData() {
        QueryRunner queryRunner = new QueryRunner(databaseManager.getConnection());
        ResultSetHandler<List<String>> resultSetHandler = rs -> {
            List<String> results = new ArrayList<>();
            while (rs.next()) {
                results.add(rs.getString("column_name"));
            }
            return results;
        };

        try {
            List<String> data = queryRunner.query("SELECT column_name FROM table_name", resultSetHandler);
            // 데이터 처리 로직
        } catch (SQLException e) {
            // 예외 처리 로직
        }
    }
}

Apache DbUtils를 사용하면 데이터베이스 연결을 설정하고 쿼리를 실행하는 코드를 간결하게 유지할 수 있습니다. 이를 통해 코드 유지보수가 간단해지고, 데이터베이스 관련 기능을 빠르게 구현할 수 있습니다.

Apache DbUtils에 대한 자세한 내용은 공식 문서를 참조하십시오.