如何在不查看hibernate配置的情况下找到hibernate在运行时使用的连接池? 是否有像“getConnectionPoolUsed()”这样的API返回hibernate正在使用的连接池?
答案 0 :(得分:2)
我在javadocs中找不到任何这样的方法。而且我找不到任何返回ConnectionProvider
的公开方法。 (有一些不赞成的方法,以及“内部”类的一些方法,但你不应该使用它们。)
IMO,干净的解决方案是查看配置。
答案 1 :(得分:1)
要使用 C3P0ConnectionProvider ,您需要 hibernate-c3p0.jar (可用here)
然后在 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。
这些值只是一个示例,您应该使用最适合您需求的配置。
答案 2 :(得分:0)
没有这样的API。你可以用反射来做(但这对于这个答案来说太深了。)
也许你应该问问自己为什么要这样。