日期:2014-05-16  浏览次数:20562 次

Java 数据库连接池的技术选型都应考虑哪些要素

?

数据库连接池是一个牵涉面很广的话题,对于大型系统,数据库连接池的好坏,关系到系统的性能和稳定性,因此,选好数据库连接池,是系统在架构时期的一个重要任务。

?

一般来讲,Java数据库连接池的选择,有两个选择,一是使用现有的开源组件,二是自己动手开发。

?

使用现有的开源组件,有很多可选择:

?

?

Proxool

BoneCP

DBCP

Druid

C3P0

?

从看到网上的介绍来看,BoneCP非常不错,最新的开源数据库连接池组件中,淘宝的Druid也还很吸引人。值得一试。

?

自己开发就是很麻烦的事情了,要有很好的设计和编码实现,还要经过很严格、长时间的测试,但是自己实现也有好处,就是:

(1)只需要实现自己需要的部分即可,无需额外的设计和编码(开源组件都有很多其实你用不上的东西,一时半会儿还剔除不掉)

(2)可以逐步成长,逐步改善设计和实现,逐步增加功能和非功能特性,有计划的完善

(3)有了bug和新的需求不用求助社区,因为社区不是为某一个开发者服务的,你所需的特性人家不一定会愿意加进去

?

?

那么要从开源的连接池组件中选择一款来在产品中使用,需要从哪些方面考虑呢?(如果是自己开发,那么需要设计实现时考虑这些特性)。记着前一阵子发过一篇关于软件质量特性的文章,其实这里也就是这个思想的具体发挥。

?

(1)形态方面

(1.1)依赖

????????? 是否有依赖的JAR包?依赖包是数据库连接池组件自己的,还是第三方的?

????????? 在选择上,不依赖第三方包肯定更好,没有任何依赖包,只依赖Java自身最好

?????????? 这样在系统和产品中使用就简单得多。