dbcp是Apache的一个开源项目:commons.dbcp
dbcp依赖Apache的另外两个开源项目:commons.collections和commons.pool
下载以上三个jar包,并添加到你的项目中就可使用dbcp做为项目的数据库链接池了
下载地址:http://commons.apache.org/downloads/[collections,dbcp,pool]
2.C3P0
c3p0是一个开放源代码的JDBC链接池,他在lib目录中和Hibernate一块儿发布,包括实现jdbc3和jdbc2拓展说明Collection和Statement池的Datasources对象
下载地址:http://sourceforge.net/projects/c3p0
3.Proxool
proxool是一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的链接池封装。能够很是简单的移植到现存的代码中。彻底可配置。快速,成熟,健壮。能够透明地为你现存的JDBC驱动程序增长链接池功能
官方主页:http://proxool.sourceforge.net
下载地址:http://proxool.sourceforge.net/download.html
4.DBPool
DBPool是一个高效的易配置的数据库链接池。它除了支持链接池应有的功能以外,还包括了一个对象池使你可以开发一个知足自已需求的数据库链接池
项目主页:http://homepages.nildram.co.uk/slink/java/DBPool/
在实际使用中,咱们能够根据本身项目的需求和要求性能进行选择,若项目中添加了Spring框架,就能够很容易在Spring的配置文件中进行配置。也能够在Hibernate项目中配置,还能够在Tomcat中对链接池进行配置,经过使用JNDI得到链接 html
下边我们来对比一下: java
C3P0和DBCP
C3P0是Hibernate3.0默认的自带数据库链接池,DBCP是Apache开发的数据库链接池。咱们对这两种链接池进行压力测试对比,发如今并发300个用户如下时,DBCP比C3P0平均时间快1秒左右。但在并发400个用户时,二者差很少。
速度上虽然DBCP比C3P0快些,可是有BUG:当DBCP创建的数据库链接,由于某种缘由断掉后,DBCP将不会再从新建立新的链接,致使必须从新启动Tomcat才能解决问题。DBCP的BUG使咱们决定采用C3P0做为数据库链接池。 算法
dbcp有BUG,在某些种情会产生不少空链接不能释放,因此抛弃了对dbcp的支持。我不知是否在dbcp最新版本中解决了这个问题,我之前在一个访问量不大的项目中用过dbcp,运行了一年多都没出现问题。不过在网上的确也有很多网友指出dbcp在大型的应用中会出现不稳定的状况。因此在真相未经证明的状况下,我以为对dbcp持慎重的态度。 数据库
c3p0:
至于c3p0,有评论说它的算法不是最优的,并且,我在matrix中,见到有网友作了一个实验,在同一项目中分别用了几个经常使用的链接池,而后测试其性能,发现c3p0占用资源比较大,效率也不高。
因此,基于上述缘由,我才花两晚的时间去研究proxool的配置,proxool很多行家推荐使用,并且暂时来讲,是负面评价是最少的一个。在三星中也有项目是用proxool的。 apache
C3P0在负载种的状况下表现比较好,C3P0的一个比较特别的设计是它默认会启动三个异步线程用来在来不及调度的状况下使用,因此在任何状况下都不会失去响应。Proxool已经有两年没有发布新版本了吧。 并发