org.apache.commons.dbcp.BasicDataSource和org.apache.commons.dbcp.PoolingDataSource的区别是什么?它们两个都支持连接池吗?什么时候使用它们?
org.apache.commons.dbcp.BasicDataSource和org.apache.commons.dbcp.PoolingDataSource的区别是什么?它们两个都支持连接池吗?什么时候使用它们?
BasicDataSource是一个一站式的基础需求解决方案,正如javadoc所述。它具备所有必要的功能,并内部创建了一个PoolableDataSource和一个ObjectPool。
PoolingDataSource使用提供的ObjectPool实现了DataSource接口。PoolingDatasource负责连接相关的问题(强制类型转换、有效性检查、属性设置等),而ObjectPool则负责存储和计数这些对象。
因此我应该使用BasicDataSource。如果您需要特殊功能,可以使用PoolingDatasource与其他ObjectPool实现。但我认为这将是一个罕见的情况。