如何在不查看休眠配置的情况下找到休眠在运行时使用的连接池?是否有类似“getConnectionPoolUsed()”的 API 返回休眠使用的连接池?
问问题
668 次
3 回答
2
我在 javadocs 中找不到任何这样的方法。而且我找不到任何返回 a 的公开方法ConnectionProvider
。(有一些不推荐使用的方法,以及“内部”类中的一些方法,但您不应该使用这些方法。)
IMO,干净的解决方案是查看配置。
于 2013-10-03T11:05:44.780 回答
1
为了使用C3P0ConnectionProvider你需要hibernate-c3p0.jar(在此处可用)
然后在hibernate.cfg.xml中配置如下属性
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
不需要指定 *hibernate.connection.provider_class*,只要有hibernate.c3p0.x属性,Hibernate 就会使用 C3P0。
这些值只是一个示例,您应该使用最适合您需要的配置。
于 2014-04-10T09:34:33.953 回答
0
不,没有这样的 API。您可以使用反射来做到这一点(但这对于这个答案来说太深了)。
也许你应该问问自己为什么想要这个。
于 2013-10-03T11:16:16.250 回答