Spring DriverManagerDataSource vs apache BasicDataSource

2022-09-02 10:14:18

Spring DriverManagerDataSource和apache BasicDataSource有什么区别?其中哪一个更可取,在哪些情况下?

谢谢。


答案 1

根据春季文档

此类不是实际的连接池。它实际上并没有池化连接。它只是作为完整连接池的简单替代品,实现相同的标准接口,但在每次调用时创建新的连接。

如果您需要在 J2EE 容器之外使用“真实”连接池,请考虑 Apache 的 Jakarta Commons DBCP 或 C3P0。Commons DBCP的BasicDataSource和C3P0的ComboPooledDataSource是完全连接池bean,支持与此类相同的基本属性以及特定设置(例如最小/最大池大小等)。

另请阅读控制数据库连接

使用Spring的JDBC层时,您可以从JNDI获取数据源,或者使用第三方提供的连接池实现配置自己的数据源。流行的实现是Apache Jakarta Commons DBCP和C3P0。Spring 发行版中的实现仅用于测试目的,不提供池化。


答案 2

来自Spring DriverManagerDataSource API:

此类不是实际的连接池。它实际上并没有池化连接。它只是作为完整连接池的简单替代品,实现相同的标准接口,但在每次调用时创建新的连接。

换句话说,它可能适用于测试,但在实际应用程序中使用Apache DBCP。


推荐