我刚开始使用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()吗?而且,我读到某个地方我需要单独关闭所有池化连接?这是真的吗?
感谢。
答案 0 :(得分:18)
1。完成后,请始终呼叫connection.close()
以恢复与池的连接(它不会在物理上关闭)。
2。当您完成游泳池并且没有计划再次重新连接时,请致电connectionPool.shutDown()
。
答案 1 :(得分:1)
Connection connection = dbPool.getConnection();
从池中获取的Connection对象是一个包装类。即使在例外中,它也会正确维护基础连接。
即使在连接相关的例外中,例如 TERMINATE_ALL_CONNECTIONS ,BoneCP池也会正确关闭所有底层连接。
总之,BoneCP池使缓存透明。客户方只需遵循立场流程,
当应用程序停止时,关闭池以释放所有缓存的连接。
boneCP.shutdown()