?
数据库连接池是一个牵涉面很广的话题,对于大型系统,数据库连接池的好坏,关系到系统的性能和稳定性,因此,选好数据库连接池,是系统在架构时期的一个重要任务。
?
一般来讲,Java数据库连接池的选择,有两个选择,一是使用现有的开源组件,二是自己动手开发。
?
使用现有的开源组件,有很多可选择:
?
?
Proxool
BoneCP
DBCP
Druid
C3P0
?
从看到网上的介绍来看,BoneCP非常不错,最新的开源数据库连接池组件中,淘宝的Druid也还很吸引人。值得一试。
?
自己开发就是很麻烦的事情了,要有很好的设计和编码实现,还要经过很严格、长时间的测试,但是自己实现也有好处,就是:
(1)只需要实现自己需要的部分即可,无需额外的设计和编码(开源组件都有很多其实你用不上的东西,一时半会儿还剔除不掉)
(2)可以逐步成长,逐步改善设计和实现,逐步增加功能和非功能特性,有计划的完善
(3)有了bug和新的需求不用求助社区,因为社区不是为某一个开发者服务的,你所需的特性人家不一定会愿意加进去
?
?
那么要从开源的连接池组件中选择一款来在产品中使用,需要从哪些方面考虑呢?(如果是自己开发,那么需要设计实现时考虑这些特性)。记着前一阵子发过一篇关于软件质量特性的文章,其实这里也就是这个思想的具体发挥。
?
(1)形态方面
(1.1)依赖
????????? 是否有依赖的JAR包?依赖包是数据库连接池组件自己的,还是第三方的?
????????? 在选择上,不依赖第三方包肯定更好,没有任何依赖包,只依赖Java自身最好
?????????? 这样在系统和产品中使用就简单得多。