现在 主流的数据库连接池有:Proxool、C3P0、DBCP、tomcat-jdbc、Druid。其中tomcat-jdbc是tomcat服务器比较可靠的 数据库连接池。
DBCP 是单线程的,为了保证线程安全会锁整个连接池 DBCP 性能不佳 DBCP 太复杂,超过60个类,发展滞后。Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是DBCP存在一些问题:
异步方式获取连接Tomcat Jdbc Pool是Tomcat的一个模块,基于Tomcat-Juli,使用Tomcat的日志框架使用 javax.sql.PooledConnection 接口获取连接支持高并发应用环境超简单,核心文件只有8个,比 c3p0 还少更好的空闲连接处理机制支持 JMX支持 XA Connection。Tomcat Jdbc Pool 可在 Tomcat 中直接使用,也可以在独立的应用中使用。因此,通常J2EE中还会使用其它的高性能连接池,如C3P0,还有阿里系的druid等。为此,Tomcat 从 7.0 开始引入一个新的模块: Tomcat Jdbc Pool
Tomcat Jdbc Pool 近乎兼容 DBCP,性能更高
1.作为JNDI资源使用
tomcat 数据源JNDI配置样例:
2.Spring容器中使用
3.配置注意事项
必须配置,才能启用tomcat-jdbc:
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
并且数据库驱动必须复制一份到tomcat/lib目录下,如
JNDI 工厂与类型
常用属性