JSP基础(十九)——常用的开源数据库连接池

来源:互联网 发布:汕头新天音响淘宝店 编辑:程序博客网 时间:2024/06/03 23:36

常用开源数据库连接池简介与比较

    现在很多WEB服务器(Weblogic, WebSphere, Tomcat)都提供了DataSoruce的实现,即连接池的实现。通常我们把DataSource的实现称为数据源,数据源中都包含了数据库连接池的实现。

    现在常用的开源数据库连接池主要有DBCP、C3P0Proxool三种,其中:
Spring               推荐使用dbcp;
Hibernate         推荐使用c3p0和proxool;

 DBCP:Apache
      DBCP(DataBase connection pool)数据库连接池。是Apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。

      单独使用DBCP需要3个包:common-dbcp.jar(连接池的实现)、common-pool.jar(连接池实现的依赖库)、common-collections.jar。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。DBCP没有自动的去回收空闲连接的功能。


C3P0

         C3P0实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。C3P0有自动回收空闲连接功能。
 

▶ Proxool:Sourceforge
Proxool是一种Java数据库连接池技术。是Sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。

比较:

▶     相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试参数(Average,median,90%Line)进行比较发现:性能dbcp<=c3p0<proxool;

▶     不同情况下的同一数据库连接池测试:通过观察 Average,median,90%Line三个参数,发现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp>=c3p0>proxool。
结论:   
通过对三种数据库连接池的性能测试发现:Proxool和 C3P0能够更好的支持高并发,但是在稳定性方面略逊于 DBCP。