如何使用 Java JDBC 连接池?

Posted

技术标签:

【中文标题】如何使用 Java JDBC 连接池?【英文标题】:How to use Java JDBC connection pool? 【发布时间】:2011-01-11 12:58:31 【问题描述】:

我想使用 JDBC 连接池。最重要的因素是它易于使用且没有错误。什么适合我?

【问题讨论】:

【参考方案1】:

另一个不错的选择是Apache Database Connection Pool。

您将使用 JNDI 命名服务将连接从池中取出,而不是使用 DriverManager 获取连接。

请务必关闭您的资源 - Connection、Statement 和 ResultSet。否则,您的池将很快耗尽。

【讨论】:

【参考方案2】:

也可以看看BoneCP;网站上有一些示例。

【讨论】:

【参考方案3】:

我建议c3p0(在DBCP 上确实有serious issues):它工作得很好,积极维护 并且易于使用。也许看看这个previous question 了解更多关于此的信息。

更新:我承认我在写这个答案时没有检查状态(我使用 c3p0 很多年并且对此感到满意)并且似乎 c3p0 开发处于立场经过。有趣的是,作为参考提到的previous question 已在 2010-03-12 更新,以提及 DBCP 开发再次活跃。因此,我的原始帖子可能已过时。

【讨论】:

c3p0 真的在积极维护吗?最新版本是 2007-05-21 的 0.9.1.2。 @Arne 该死的,你是对的。 DBCP 已经复活了。我已经更新了我的答案...【参考方案4】:

我已将此MiniConnectionPoolManager 与H2 和Derby 一起使用。

【讨论】:

【参考方案5】:

2 年后... 刚刚迁移到jdbc-pool(现在是 Tomcat 7 的标准),在 Web 应用程序或整个服务器中独立实现它非常容易。根据规格和我的经验,它的性能优于 c3p0。

根据规格,它也比 dbcp 或 c3p0 干净得多。

【讨论】:

以上是关于如何使用 Java JDBC 连接池?的主要内容,如果未能解决你的问题,请参考以下文章

如何监控数据库连接池(JDBC Connection Pool)

jdbc连接池中c3p0的配置文件的详解以及在在java中如何使用

如何在 Sybase 中使用通用连接池 (UCP)?

Java与XML 连接池-JDBC 笔记

如何重置 JDBC 连接池

Java Web JDBC的增删改查,C3P0等连接池,dbutils框架的使用