DBCP和Tomcat jdbc-pool 对比
一? 性能
低并发情况下DBCP略强于jdbc-pool,高并发情况无明显差别。
参考《连接池性能测试报告》和《不同并发量下连接池性能和包依赖》
?
二? 稳定性
无论是DBCP还是jdbc-pool都是Tomcat7捆绑发布的连接池。
DBCP经过多年广泛应用,稳定性毋庸置疑。
jdbc-pool的issues显示其尚未出现严重bug,而且在测试中突发数千并发情况下仍然稳定可靠。
虽然jdbc-pool没有DBCP普及,但其Apache的正宗血统,基本可以认为是可信赖的。
?
三? 扩展性
由于拦截器功能的存在,jdbc-pool扩展性远强于DBCP。
参考《Tomcat jdbc-pool与commons
DBCP的参数对比》jdbc-pool增加参数部分。
?
四? 文档
DBCP早在2004年API就已经稳定,有经过多年跟随Apache
commons项目推广、与Tomcat捆绑发布,现已成为最广泛应用的连接池之一,文档详实、互联网上相关资料丰富、讨论众多。
jdbc-pool从08年启动,09年才开始制作相关文档,11年下半年才随着Tomcat7.0.19低调公布
,远不如DBCP知名。
jdbc-pool的API直至Tomcat 7.0.27仍未稳定。
但jdbc-pool的API对DBCP完全兼容,只要改变类名即可完成迁移。
jdbc-pool文件较少,且只有日志功能依赖其他jar包,源码分析容易。而DBCP文件较多,又主要依靠commons
Pool项目完成对象池功能,受其他项目影响较大,不容易进行源码分析。
参考http://tomcat.apache.org/tomcat-7.0-doc/changelog.html
和《Tomcat jdbc-pool与commons DBCP的参数对比》
?
五? 项目集成
DBCP直接支持Properties 配置。
两者均不支持xml直接配置。
由于两者均支持Bean配置的DataSource,所以可以使用set方法、反射、注入等方式配置数据源,只需要修改原来Proxool的初始化方法即可。
可以自定义Properties或xml配置,自己解析并set或反射到Bean上。