生产环境最强大的数据源

时间:2011-11-15 01:55:39

标签: spring datasource connection-pooling

我正在使用DriverManagerDataSource进行本地开发。我现在正在使用org.apache.commons.dbcp.BasicDataSource因为正在创建太多连接。

有没有人就在连接池方面为客户端设置数据库的最佳方法提出建议?

3 个答案:

答案 0 :(得分:0)

看看t BoneCP,它非常快。

除了所有示例之外,还有FAQ可以为您提供关于连接池,边角情况以及BoneCP如何处理它们的非常简洁和精确的概述。

答案 1 :(得分:0)

我通常倾向于C3P0。它对我来说总是很好。实际上没有做过任何更深入的分析或比较,因为C3P0在性能和功能方面总是“足够好”。

答案 2 :(得分:0)

是的,我强烈建议将池数据源用于生产就绪应用程序。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

DriverManagerDataSourceSingle-ConnectionDataSource提供连接池,没有要设置的池配置属性。

虽然SingleConnectionDataSourceDriverManagerDataSource很棒 对于小型应用程序和在开发中运行,您应该认真考虑在生产应用程序中使用它们的含义。因为SingleConnection-DataSource只有一个且只能使用一个数据库连接,所以它在多线程应用程序中不能很好地工作。同时,即使DriverManager-DataSource能够支持多个线程,每次请求连接时创建新连接也会产生性能成本。由于这些限制,我强烈建议使用池化数据源。

我已经展示了Pooled DataSource示例配置

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<propertyname="driverClassName"value="org.hsqldb.jdbcDriver"/>
<propertyname="url" value="jdbc:hsqldb:hsql://localhost/test"/>
<propertyname="username"value="sa"/>
<propertyname="password"value=""/>
<propertyname="initialSize"value="5"/>
<propertyname="maxActive"value="10"/>
</bean>