我看到有些人使用org.apache.commons.dbcp.BasicDataSource
而其他配置有com.mchange.v2.c3p0.ComboPooledDataSource
.
Spring有它自己的:org.springframework.jdbc.datasource.DriverManagerDataSource
可能还有更多。但哪一个最好呢?我有一个 JPA/Hibernate 三层应用程序需要连接池,但看起来都支持这个......
Spring有自己的:org.springframework.jdbc.datasource.DriverManagerDataSource
班上org.springframework.jdbc.datasource.DriverManagerDataSource http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jdbc/datasource/DriverManagerDataSource.html实施DataSource http://java.sun.com/javase/6/docs/api/javax/sql/DataSource.html?is-external=true接口但是是NOT连接池,它只是一个方便的类,可以在开发过程中使用,而不是真正的池(但它会在每次调用时创建一个新连接)。我建议阅读它javadoc http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jdbc/datasource/DriverManagerDataSource.html.
我有一个 JPA/Hibernate 三层应用程序需要连接池,但看起来都支持这个......
如果您使用应用程序服务器,请选择应用程序服务器的连接池。
如果不是,那么 DBCP、C3P0 是最常见的解决方案。I会使用 C3P0(实际上现在与 Hibernate 捆绑在一起,而不是 DBCP),我在高负载下使用 DBPC 遇到了一些死锁问题,而不是使用 C3P0,所以我倾向于更喜欢 C3P0。
值得注意的是,DBCP 经过很长一段时间的不活动(而 C3P0 不活动)后最近又复活了,因此可能会变得更好。
其他球员包括Proxool http://proxool.sourceforge.net/ and BoneCP http://jolbox.com/(最近的新竞争对手)。后者看起来很有趣,但我没有任何实际经验。
无论如何,您通常应该在投入生产之前运行稳健性测试。
See also
- JDBC 连接池选项:DBCP 与 C3P0 https://stackoverflow.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)