首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BoneCP的正确用法

BoneCP的正确用法
EN

Stack Overflow用户
提问于 2012-02-17 19:54:17
回答 2查看 8.5K关注 0票数 11

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

我有一个名为getConnection()的函数,它返回一个连接,下面是一个代码片段:

代码语言:javascript
复制
    // 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()吗?另外,我在某处读到我需要单独关闭所有池连接?这是真的吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-17 21:16:03

1.当您使用完连接时,总是调用connection.close()将连接返回到池(它不会物理上关闭)。

2.当您完全用完池并且不打算再次重新连接时,调用connectionPool.shutDown()

票数 19
EN

Stack Overflow用户

发布于 2013-09-28 12:55:09

代码语言:javascript
复制
 Connection connection = dbPool.getConnection();

从池中获取的Connection对象是一个包装类。即使在Exception中,它也会正确地维护底层连接。

例如,即使在与连接相关的异常中,TERMINATE_ALL_CONNECTIONS,BoneCP池也会正确地关闭所有底层连接。

总之,BoneCP池使缓存变得透明。客户端只需要遵循看台流程,

  1. 请求连接(从池中获取连接,池将决定是否重新使用/创建连接)
  2. 请求准备语句/ pool)

语句(如果是statements

  • close语句,则重新使用池中的对象,(如果是enabled)

  • close连接,则将语句对象释放到池,(释放连接对象到池

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

代码语言:javascript
复制
boneCP.shutdown()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9327764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档