开发者

Using BoneCP: Handling connections from the pool

I have just started using BoneCP and this is my first time using a connection pool. I'm somewhat confused as to how I am supposed to use it. Currently I am saving the BoneCP-object as a static variable, and thus I can use it between different connections.

When I'm done with the connection, I close it with connection.close().

Should I do this, or should I not close it to enable it to be reused by the pool?

This is my current implementation to get a connection:

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.setMinCo开发者_运维百科nnectionsPerPartition(5);
    config.setMaxConnectionsPerPartition(10);
    config.setPartitionCount(1);
    connectionPool = new BoneCP(config);
}

Does this seem correct or have I misunderstood how I am supposed to use BoneCP?


Other than making your private static final and changing the init to a static block (or alternaitvely making your getConnection synchronized), you are ok.

You are correct you MUST do connection.close() to return to the pool. When your app shuts down, shut down the connection pool

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜