博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2EE开发常用数据库连接池
阅读量:6388 次
发布时间:2019-06-23

本文共 1577 字,大约阅读时间需要 5 分钟。

hot3.png

1.Jakarta DBCP

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获得连接

下边咱们来对比一下:

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的。

C3P0在负载种的情况下表现比较好,C3P0的一个比较特别的设计是它默认会启动三个异步线程用来在来不及调度的情况下使用,所以在任何情况下都不会失去响应。Proxool已经有两年没有发布新版本了吧。

转载于:https://my.oschina.net/u/1012289/blog/137730

你可能感兴趣的文章
Unity Remote 无法连接
查看>>
linux下core file size设置笔记
查看>>
mysql 、redis的区别
查看>>
使用JPA中@Query 注解实现update 操作
查看>>
7.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)
查看>>
Web 仪表盘
查看>>
我的Fedora 7硬盘安装过程
查看>>
18.4. FAQ
查看>>
Python——SSHClient.py
查看>>
MVC解决更新冲突问题
查看>>
江西理工大学南昌校区cool code竞赛
查看>>
[LeetCode] Trim a Binary Search Tree 修剪一棵二叉搜索树
查看>>
Ubuntu SDL lib 安装
查看>>
Java 并发编程内部分享PPT分享
查看>>
关于discuz中禾金投票系统循环出现引导页的问题
查看>>
C#开源系统大汇总
查看>>
Linux服务器安全初始化自选安装Shell脚本
查看>>
PyCharm教程
查看>>
Python 简单的数据结构(一)
查看>>
谁说我们只会做工作流?做实验室管理系统我们也内行。
查看>>