20

What is the difference between Spring DriverManagerDataSource and apache BasicDataSource? Which of them is preferable and in which situations?

Thank you.

4

2 回答 2

21

根据Spring 文档

这个类不是一个实际的连接池;它实际上并不池连接。它只是作为成熟连接池的简单替代品,实现相同的标准接口,但在每次调用时创建新的连接。

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

另请阅读控制数据库连接

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

于 2013-07-30T11:01:08.810 回答
3

来自 Spring DriverManagerDataSource API:

这个类不是一个实际的连接池;它实际上并不池连接。它只是作为成熟连接池的简单替代品,实现相同的标准接口,但在每次调用时创建新的连接。

换句话说,测试可能没问题,但在实际应用程序中使用 Apache DBCP

于 2013-07-30T11:01:52.807 回答