首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不确定将哪个连接池Api用于此java/MySQL数据库程序

不确定将哪个连接池Api用于此java/MySQL数据库程序
EN

Stack Overflow用户
提问于 2013-03-23 11:31:59
回答 1查看 341关注 0票数 1

我听说jbdc在多线程访问方面有问题。我也听boneCP在另一篇文章中推荐过,但我想知道是否有人使用过另一种他们认为异步的东西简单且高性能的方法

另外,Apache版本说它可能无法在java1.6以上运行,我使用的是java.runtime.version: 1.7.0_07-b11

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-23 11:54:10

在实践中尝试了一些其他API之后,我最终选择了BoneCP。我将它与Java1.7一起使用,即使在高并发的情况下,它也能很好地工作。此外,开发人员在报告问题时会做出响应。

我之前使用过C3P0,但在我切换到BoneCP之后,它有一些非常奇怪的bug消失了。如果您深入研究一下C3P0,就会发现它已经有几年没被开发过了,而且刚刚恢复了开发。在我的应用程序中,它在奇怪的时候崩溃了。

我使用普通Mysql JDBC包中的MysqlConnectionPoolDataSource。然后我只做如下设置(你可以随意调整设置):

代码语言:javascript
复制
pbds = new BoneCPDataSource();      
pbds.setDatasourceBean(mysqlcpds);
pbds.setMinConnectionsPerPartition(1);              
pbds.setMaxConnectionsPerPartition(10);    
pbds.setIdleConnectionTestPeriodInMinutes(60);
pbds.setIdleMaxAgeInMinutes(240);
pbds.setPartitionCount(1);

然后,您只需从该对象获取Connections (它是线程安全的)。我使用来自几个线程的相同代码;Java7 try-with-resources块特别方便,并且避免了许多样板(不需要finally,并且保证连接是关闭的):

代码语言:javascript
复制
try( Connection conn = pbds.getConnection() ) { 

    ... do stuff with conn

} catch (SQLException e) {          
    e.printStackTrace();
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15583042

复制
相关文章

相似问题

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