작업 당 하나의 연결을 사용해야합니다. 연결 풀링을 사용하면 다른 연결에 의해 준비된 준비된 명령문을 사용할 수 없습니다. 연결에 의해 생성 된 모든 객체 (ResultSet, PreparedStatements)는 연결이 풀로 반환 된 후 사용할 수 없습니다.
그래서, 그것은 모든 DAO 객체가 연결되지 가지고이 경우
public void getSomeData() {
Connection conn = datasource.getConnection();
PreparedStatement st;
try {
st = conn.prepareStatement(...);
st.execute();
} finally {
close(st);
close(conn);
}
}
그래서 모두, 그러나 실제로 풀링 연결 공장 데이터 소스 오브젝트 (java.sql.DataSource). 그리고 각 방법에서 먼저 연결이 이루어지며 모든 작업을하고 연결을 끊습니다. 가능한 한 빨리 풀에 연결해야합니다. 연결이 반환 된 후 물리적으로 닫히지는 않지만 다시 초기화됩니다 (모든 활성 트랜잭션이 닫히고 모든 세션 변수가 손상됨)