7

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 の使用方法を誤解していますか?

4

1 に答える 1

9

private static final を作成し、init を static ブロックに変更する (または代わりに getConnection を同期化する) 以外は問題ありません。

プールに戻るには connection.close() を実行する必要があります。アプリがシャットダウンしたら、接続プールをシャットダウンします

于 2011-08-04T18:29:56.690 に答える