집 >데이터 베이스 >MySQL 튜토리얼 >내 BasicDataSource 구현이 실제로 JDBC 연결 풀링을 사용하고 있습니까?
Java 애플리케이션에서 BasicDataSource를 사용하여 연결 클래스를 구현했습니다. 이것이 진정한 연결 풀링으로 간주됩니까?
예, Apache Commons DBCP의 구성 요소인 BasicDataSource와 함께 연결 풀을 사용하고 있습니다. 그러나 getConnection()을 호출할 때마다 새 풀이 생성되므로 현재 구현에서는 실수로 여러 연결 풀을 생성하게 됩니다.
적절한 연결 풀링을 설정하려면 일반적으로 연결 풀을 한 번만 생성해야 합니다. 응용 프로그램 시작 중. 그런 다음 이 풀을 사용하여 애플리케이션 실행 전반에 걸쳐 연결을 획득하고 해제해야 합니다.
다음은 연결 풀링을 효과적으로 사용하는 수정된 코드 버전입니다.
public final class Database { private static final BasicDataSource dataSource = new BasicDataSource(); static { dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/data"); dataSource.setUsername("USERNAME"); dataSource.setPassword("PASSWORD"); } private Database() { // } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }
애플리케이션 코드에서 try-with-resources 블록을 사용해야 합니다. 예외가 발생하더라도 연결, 문, 결과 집합과 같은 리소스가 제대로 닫히도록 하려면:
try ( Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_EXIST); ) { // ... }
이러한 개정을 구현하면 진정한 연결이 설정됩니다. Java 애플리케이션에서 풀링하여 여러 연결 생성에 따른 오버헤드를 방지하여 성능을 최적화합니다.
위 내용은 내 BasicDataSource 구현이 실제로 JDBC 연결 풀링을 사용하고 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!