2011-08-04 13 views
7

방금 ​​BoneCP를 사용하기 시작했습니다. 연결 풀을 처음 사용합니다. 나는 그것을 어떻게 사용해야하는지 다소 혼란 스럽다. 현재 BoneCP 개체를 정적 변수로 저장하고 있으므로 다른 연결간에 사용할 수 있습니다.BoneCP 사용 : 풀에서 연결 처리

연결이 완료되면 connection.close()으로 닫습니다.
이 작업을 수행해야합니까, 아니면 풀로 재사용 할 수 있도록 닫아야합니까?

이 연결 얻을 내 현재 구현 :

private static BoneCP connectionPool; 

public Connection getConnection() throws SQLException { 
    if (connectionPool == null) { 
     initPool(); 
    } 
    return connectionPool.getConnection(); 
} 

private void initPool() throws SQLException { 
    BoneCPConfig config = new BoneCPConfig(); 
    config.setJdbcUrl(DB_URL); 
    config.setUsername(DB_USERNAME); 
    config.setPassword(DB_PASSWORD); 
    config.setMinConnectionsPerPartition(5); 
    config.setMaxConnectionsPerPartition(10); 
    config.setPartitionCount(1); 
    connectionPool = new BoneCP(config); 
} 

이 올바른 보이는가 또는 내가이 BoneCP를 사용하는 가정하고 어떻게 오해를?

답변

9

개인 정적 final을 만들고 init을 정적 블록으로 변경하는 것 (또는 대체적으로 getConnection을 동기화하는 것) 이외에는 괜찮습니다.

당신은 수영장으로 돌아가려면 connection.close()를해야합니다. 앱이 종료되면 연결 풀을 종료하십시오

관련 문제