我看到有些人使用org.apache.commons.dbcp.BasicDataSource,而其他配置有com.mchange.v2.c3p0.ComboPooledDataSource.
Spring有自己的:org.springframework.jdbc.datasource.DriverManagerDataSource
可能还有更多.但哪一个最好?我有一个需要连接池的JPA / Hibernate三层应用程序,但它看起来都支持这个….
Spring has its own: org.springframework.jdbc.datasource.DriverManagerDataSource
类org.springframework.jdbc.datasource.DriverManagerDataSource
实现了DataSource
接口但不是连接池,它只是一个方便的类,可以在开发期间而不是实际池中使用(但它会在每次调用时创建一个新连接).我建议阅读它的javadoc.
I have a JPA/Hibernate three tier application that needs connection pooling,but it looks like that all support this….
如果您使用的是应用程序服务器,请使用应用程序服务器的连接池.
如果不是,那么DBCP,C3P0是最常见的解决方案.我会使用C3P0(实际上现在捆绑了Hibernate而不是DBCP),我在高负载下遇到了DBPC的一些死锁问题,而不是C3P0所以我倾向于选择C3P0.
值得注意的是,DBCP在很长一段时间不活动(C3P0处于非活动状态)后最近才复活,因此可能会变得更好.
其他参与者包括Proxool和BoneCP(最近的新竞争对手).后者看起来很有趣,但我没有任何实际经验.
在任何情况下,您通常应该在投入生产之前运行稳健性测试.
也可以看看