2017-02-08 1 views
1

JDBC 연결을 작성하고 준비된 명령문을 사용하는 모든 Java 클래스 또는 저장 프로시 듀어에서 호출하는 것이 업계 표준입니까? 클래스가 인스턴스화 될 때마다 연결을 만드는 것이 아니라 삽입, 업데이트 및 삭제를 실행할 때 연결을 재사용하는 훨씬 효율적인 방법이있는 것 같습니다.JDBC 연결을 만들 때 업계 표준은 무엇입니까?

자바 서블릿에 관해서는 묻지 않습니다.

피드백 및 리소스를 검토해 주셔서 감사합니다.

+3

입니다. 연결 풀을 사용하는 산업 표준입니다. 커넥션 풀을 관리 할 서블릿 컨테이너에서 연결을 가져옵니다. 서블릿이 아닌 경우 연결 풀에 타사 라이브러리를 사용해야합니다 (예 : [JDBC에 연결 풀을 만드는 방법] (http://stackoverflow.com/q/2835090/5221149) – Andreas

+0

을 참조하십시오. 그러나 서블릿을 사용하지 않으면 여전히 쉽게 연결 풀을 사용할 수 있습니다. 응용 프로그램의 기능과 연결 수 및 빈도에 따라 그럴 가치가 있는지 여부를 결정해야합니다. (하지만 보통은) – slipperyseal

답변

3

일반적으로 응용 프로그램은 DataSource에서 제공하는 연결 폴링을 사용합니다. 서블릿 컨테이너가 아닌 애플리케이션 서버를 실행할 필요가 없습니다. 구현을 인스턴스화하고 응용 프로그램에서 사용하십시오. 일반적으로 사용되는 구현은 Apache Dbcp :

ds = new BasicDataSource(); 
    ds.setDriverClassName("com.mysql.jdbc.Driver"); 
    ds.setUsername("root"); 
    ds.setPassword("root"); 
    ds.setUrl("jdbc:mysql://localhost/test"); 
    ... 
    // then later in the application: 
    Connection conn = ds.getConnection(); 
    // do the stuff 
    conn.close(); // only releases conn back to pool 
    ... 
    // or better in Java 7: 
    try (Connection conn = ds.getConnection()) { 
      // do the stuff 
    } 
+0

피드백에 감사드립니다. 연결 관리자 클래스를 만들고 Connection.getConnection()이 완벽하게 작동했습니다. 그런 식으로 간단히 방법으로 연결할 수 있습니다. 업데이트 된 코드를 게시해야하는지 알려주십시오. – dangerouslyCoding

0

필요에 따라 코드에서 연결을 점유/연결 해제 할 수있는 연결 풀을 사용할 수 있습니다. 일부 인기있는 것들은 C3P0DBCP입니다. 시작하려면 this answer을 참조하십시오.

관련 문제