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事务传播行为