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池使缓存透明。 客户方只需遵循立场流程,
- 请求连接( 从池中获取连接 ,池将决定是否重新使用/创建一个)
- 请求PreparedStatement / CallableStatement( 如果启用了池中的对象,则重用该对象 )
- 执行语句
- close语句,( 如果启用了语句对象,则将其释放到池中 )
- close connection,( 释放连接对象到池 )
应用程序停止时,关闭池以释放所有缓存的连接。
boneCP.shutdown()