Java数据库连接池

一般来说,Java应用程序访问数据库的过程如下:
①装载数据库驱动程序
②通过JDBC建立数据库连接
③访问数据库,执行SQL语句
④断开数据库连接
在第二步是通过创建Socket来和数据库建立连接,这里花费的时间要比实际的执行查询的操作所花费的时间还要更长,而且频繁的进行数据库连接操作会消耗大量的系统资源,所以经常会听到这么一句话“数据库连接很昂贵”。如果程序出现异常而未能断开数据库连接,还有可能导致数据库系统中的内存泄漏。

数据库连接池是创建、分配、管理和释放数据库连接的缓冲池的技术,连接池初始化时创建一定量的连接,然后从连接池中重用连接,而不是每次创建一个新的,从而减少连接创建时间。

DBCP
http://commons.apache.org/dbcp/
利用了Jakarta Commons Pool来实现连接池管理。Tomcat的数据源使用的就是DBCP。

C3P0
http://sourceforge.net/projects/c3p0/
一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,可自动回收空闲连接。目前使用它的开源项目有Hibernate,Spring等。

BoneCP
http://jolbox.com/
一个只有四十几K大小的开源的快速的 JDBC 连接池。

阿里巴巴的Druid
https://github.com/AlibabaTech/druid

其他
Proxool  http://proxool.sourceforge.net/ 2008年发布0.9.1版后已经不再更新
Tomcat JDBC Connection Pool http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html 依赖于Tomcat
DBPool http://www.snaq.net/java/DBPool/
SmartPool http://smartpool.sourceforge.net/
XAPool http://xapool.ow2.org/
MiniConnectionPoolManager http://www.source-code.biz/miniconnectionpoolmanager/

猜你喜欢

转载自rensanning.iteye.com/blog/1696334