Spring DriverManagerDataSource vs apache BasicDataSource

时间:2013-07-30 10:57:18

标签: java database spring apache datasource

Spring DriverManagerDataSource和apache BasicDataSource有什么区别? 哪种情况更可取?在哪种情况下?

谢谢。

2 个答案:

答案 0 :(得分:18)

根据Spring documentation

  

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

     

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

另请阅读Controlling database connections

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

答案 1 :(得分:3)

来自Spring DriverManagerDataSource API:

此类不是实际的连接池;实际上并没有 池连接。它只是简单的替代全面发展 连接池,实现相同的标准接口,但创建新的 每次通话都有连接。

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