问题描述
|
我应该为新的应用程序项目(而非Web应用程序)使用哪个JDBC连接池库?
我认为Apache DBCP有很多未解决的问题,这些问题一直持续到2.0。
C3P0的开发似乎已停止。
而且它们看起来都相对较慢。
Proxool已死。
DBPool几乎没有社区(至少我没有找到任何公开的社区-没有论坛,没有邮件列表...)
如果没有Tomcat,Apache Tomcat Pool似乎无法使用
我已经在Oracle网站上找到了sql数据源文章,但似乎只能将其应用于在servlet和Web服务等容器中运行的applet。
我应该选择BoneCP吗?我没有什么大要求。我只需要一个良好且易于使用的数据库连接池,即正在开发中。库,其作者可以答复错误报告,回答某些特定问题等。
顺便说一句,实际上,我仅使用MysqL。我发现MysqL驱动程序支持DriverManager接口,但是我不确定它是否实际上池化了连接。
解决方法
您已经进行了很好的研究。我会说,继续使用BoneCP。几年前,我曾建议过c3p0,但目前它也存在一些未解决的未解决问题。实际上太糟糕了。顺便说一句,BoneCP的作者也在SO活跃。
,可以在不使用Tomcat的情况下使用Tomcat连接池,它只是可以包含在任何软件中的几个.jars。我已成功将Tomcat连接池与Resin和Jetty应用程序服务器一起使用。
,另一种选择是Vibur DBCP。这是一个基于Java动态代理的新的并发JDBC连接池。它速度快,源代码简洁,支持公平性参数,JDBC语句缓存,长期运行的SQL查询日志记录以及许多其他功能。
Vibur DBCP在中央Maven存储库中可用,该网站显示了所需的Maven依赖关系,各种配置示例(带有Spring,Hibernate 3.x / 4.x / 5.x)以及所有配置选项。
Vibur DBCP需要Java 1.7。
免责声明:我是Vibur DBCP的作者。
,我知道现在回答还为时已晚,但是我刚刚找到了一个有趣的链接,它为您回答大多数问题提供了广阔的范围。但是最终,HikariCP和BoneCP比其他选择要好得多。