【发布时间】:2013-07-30 11:43:27
【问题描述】:
Spring DriverManagerDataSource 和 apache BasicDataSource 有什么区别? 哪一个更可取,在什么情况下?
谢谢。
【问题讨论】:
标签: java database spring apache datasource
Spring DriverManagerDataSource 和 apache BasicDataSource 有什么区别? 哪一个更可取,在什么情况下?
谢谢。
【问题讨论】:
标签: java database spring apache datasource
来自 Spring DriverManagerDataSource API:
这个类不是真正的连接池;它实际上并没有 池连接。它只是作为一个成熟的简单替代品 连接池,实现相同的标准接口,但创建新的 每次通话都有连接。
换句话说,测试可能没问题,但在实际应用程序中使用 Apache DBCP
【讨论】:
这个类不是一个实际的连接池;它实际上并不池连接。它只是作为成熟连接池的简单替代品,实现了相同的标准接口,但在每次调用时都会创建新的连接。
如果您需要 J2EE 容器之外的“真实”连接池,请考虑使用 Apache 的 Jakarta Commons DBCP 或 C3P0。 Commons DBCP 的 BasicDataSource 和 C3P0 的 ComboPooledDataSource 是全连接池 bean,支持与此类相同的基本属性以及特定设置(例如最小/最大池大小等)。
另请阅读Controlling database connections
使用 Spring 的 JDBC 层时,您可以从 JNDI 获取数据源,或者使用第三方提供的连接池实现来配置自己的数据源。流行的实现是 Apache Jakarta Commons DBCP 和 C3P0。 Spring 发行版中的实现仅用于测试目的,不提供池化。
【讨论】: