BasicDatasource和PoolingDatasource的区别

37

org.apache.commons.dbcp.BasicDataSource和org.apache.commons.dbcp.PoolingDataSource的区别是什么?它们两个都支持连接池吗?什么时候使用它们?

1个回答

48

BasicDataSource是一个一站式的基础需求解决方案,正如javadoc所述。它具备所有必要的功能,并内部创建了一个PoolableDataSource和一个ObjectPool。

PoolingDataSource使用提供的ObjectPool实现了DataSource接口。PoolingDatasource负责连接相关的问题(强制类型转换、有效性检查、属性设置等),而ObjectPool则负责存储和计数这些对象。

因此我应该使用BasicDataSource。如果您需要特殊功能,可以使用PoolingDatasource与其他ObjectPool实现。但我认为这将是一个罕见的情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接