什么是连接池的最佳方法?
问题描述:
我正在项目中实施连接池。 性能明智哪个更好的方法来做到这一点?什么是连接池的最佳方法?
- 休眠(使用C3PO或DBCP)
- 配置JDBC数据源中的应用服务器。
应用程序服务器可移植性对我来说不是一个重要因素。 请建议方法。
答
取决于您的'应用程序'服务器是否支持共享。例如,tomcat不会(因为它不是一个合适的应用程序服务器),但glassfish可以。另外,我个人发现c3po比dbcp好得多,但值得在你的环境中对它们进行测试。
+0
Tomcat不支持共享?真? – 2015-08-24 13:35:12
答
连接池在DataSource中实现,在两种情况下,Hibernate都将使用数据源。
的问题是实现使用哪个数据源,以及它是如何配置:
- 您可以指定和配置数据源直接进入Hibernate配置
- 您可以配置数据源在应用程序中。服务器,并在休眠配置中指定相应的JNDI名称。在这种情况下,您可以使用随应用程序一起提供的数据源实现。服务器。
性能的角度来看,我认为实现没有太大影响 - 它的越多,你是否希望你的.war
依赖于由应用程序管理的资源。服务器(情况2)或不(情况1)。在情况1中,尽管对C3P0更喜欢DBCP。
http://stackoverflow.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0 – zapping 2010-05-13 12:17:46