什么是连接池的最佳方法?

问题描述:

我正在项目中实施连接池。 性能明智哪个更好的方法来做到这一点?什么是连接池的最佳方法?

  • 休眠(使用C3PO或DBCP)
  • 配置JDBC数据源中的应用服务器。

应用程序服务器可移植性对我来说不是一个重要因素。 请建议方法。

+0

http://*.com/questions/520585/connection-pooling-options-with-jdbc-dbcp-vs-c3p0 – zapping 2010-05-13 12:17:46

取决于您的'应用程序'服务器是否支持共享。例如,tomcat不会(因为它不是一个合适的应用程序服务器),但glassfish可以。另外,我个人发现c3po比dbcp好得多,但值得在你的环境中对它们进行测试。

+0

Tomcat不支持共享?真? – 2015-08-24 13:35:12

连接池在DataSource中实现,在两种情况下,Hibernate都将使用数据源。

的问题是实现使用哪个数据源,以及它是如何配置:

  1. 您可以指定和配置数据源直接进入Hibernate配置
  2. 您可以配置数据源在应用程序中。服务器,并在休眠配置中指定相应的JNDI名称。在这种情况下,您可以使用随应用程序一起提供的数据源实现。服务器。

性能的角度来看,我认为实现没有太大影响 - 它的越多,你是否希望你的.war依赖于由应用程序管理的资源。服务器(情况2)或不(情况1)。在情况1中,尽管对C3P0更喜欢DBCP。