Spring DriverManagerDataSource vs apache BasicDataSource

Posted

技术标签:

【中文标题】Spring DriverManagerDataSource vs apache BasicDataSource【英文标题】: 【发布时间】:2013-07-30 11:43:27 【问题描述】:

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

谢谢。

【问题讨论】:

【参考方案1】:

来自 Spring DriverManagerDataSource API:

这个类不是真正的连接池;它实际上并没有 池连接。它只是作为一个成熟的简单替代品 连接池,实现相同的标准接口,但创建新的 每次通话都有连接。

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

【讨论】:

【参考方案2】:

根据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 发行版中的实现仅用于测试目的,不提供池化。

【讨论】:

以上是关于Spring DriverManagerDataSource vs apache BasicDataSource的主要内容,如果未能解决你的问题,请参考以下文章

Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC

学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签

Spring--Spring入门

Spring框架--Spring事务管理和Spring事务传播行为

Spring框架--Spring事务管理和Spring事务传播行为

Spring框架--Spring JDBC