BoneCP正确用法

我刚刚开始使用BoneCP并从作者站点中提取示例JDBC代码。

我有一个名为getConnection()的函数返回一个连接,这里是一个片段:

// setup the connection pool BoneCPConfig config = new BoneCPConfig(); // Config goes here. connectionPool = new BoneCP(config); // setup the connection pool return connectionPool.getConnection(); // fetch a connection 

现在,我的问题:1)当我完成使用从上面的函数返回的连接时,我是否调用connection.close(),以便将它返回到池中,还是完全关闭连接? 如何返回池连接?

2)如何在应用程序退出时清理池? 我结束时会调用connectionPool.shutdown()吗? 而且,我读到某个地方我需要单独关闭所有池化连接? 这是真的?

谢谢。

1.完成后,始终调用connection.close()以返回与池的连接(它不会在物理上关闭)。

2.当您完成池并且不再计划重新连接时,请调用connectionPool.shutDown()

  Connection connection = dbPool.getConnection(); 

从池中获取的Connection对象是一个包装类。 它甚至可以在Exception中正确维护底层连接。

即使在连接相关的exception(例如, TERMINATE_ALL_CONNECTIONS)中 ,BoneCP池也将正确关闭所有底层连接。

总之,BoneCP池使缓存透明。 客户方只需遵循立场流程,

  1. 请求连接( 从池中获取连接 ,池将决定是否重新使用/创建一个)
  2. 请求PreparedStatement / CallableStatement( 如果启用了池中的对象,则重用该对象
  3. 执行语句
  4. close语句,( 如果启用了语句对象,则将其释放到池中
  5. close connection,( 释放连接对象到池

应用程序停止时,关闭池以释放所有缓存的连接。

 boneCP.shutdown()