我正在使用DriverManagerDataSource
进行本地开发。我现在正在使用org.apache.commons.dbcp.BasicDataSource
因为正在创建太多连接。
有没有人就在连接池方面为客户端设置数据库的最佳方法提出建议?
答案 0 :(得分:0)
答案 1 :(得分:0)
我通常倾向于C3P0。它对我来说总是很好。实际上没有做过任何更深入的分析或比较,因为C3P0在性能和功能方面总是“足够好”。
答案 2 :(得分:0)
是的,我强烈建议将池数据源用于生产就绪应用程序。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
DriverManagerDataSource
和Single-ConnectionDataSource
提供连接池,没有要设置的池配置属性。
虽然SingleConnectionDataSource
和DriverManagerDataSource
很棒
对于小型应用程序和在开发中运行,您应该认真考虑在生产应用程序中使用它们的含义。因为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>