>데이터 베이스 >MySQL 튜토리얼 >풀링된 JDBC 연결을 닫아야 합니까?

풀링된 JDBC 연결을 닫아야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-03 22:19:141003검색

Should I Close Pooled JDBC Connections?

풀에서 JDBC 연결 닫기

질문: 연결 풀을 사용할 때 JDBC 연결을 닫아야 합니까? 그렇다면 풀링의 목적에 어긋나는 것이 아닌가요?

답변: 예, 풀링된 연결을 닫아야 합니다. 풀링된 연결을 닫으면 기본 연결이 다시 풀로 해제됩니다.

연결 풀은 사용 중인 연결과 사용 가능한 연결을 추적합니다. 연결이 닫히면 풀은 이를 재사용 가능한 것으로 인식합니다.

질문: 풀이나 DriverManager에서 연결을 얻는 데 다음 방법이 적합합니까?

public Connection getConnection(boolean pooledConnection) throws SQLException {
    if (pooledConnection) {
        if (ds == null) {
            try {
                ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/NamedInTomcat");
                return ds.getConnection();
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
        return (ds == null) ? getConnection(false) : ds.getConnection();
    }
    return DriverManager.getConnection("jdbc:mysql://..." + dbName, uName, pWord);
}

정답: 권장되지 않는 코드입니다. DataSource는 메서드가 아닌 애플리케이션 시작 중에 한 번 초기화되어야 합니다. 또한 동기화 및 null 검사가 필요하지 않습니다. 이 메소드는 단순히 DataSource를 한 번 조회하고 일관되게 연결을 반환해야 합니다.

추가 고려 사항:

  • 항상 JDBC 리소스를 역순으로 닫으세요. -with-resources 문 또는 finally 블록에 있습니다.
  • 다음과 같은 경우에는 DriverManager를 사용하여 수동으로 연결을 설정하지 마세요. 연결 풀을 사용합니다.

위 내용은 풀링된 JDBC 연결을 닫아야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.