Hibernate 5.x 配置 C3P0 数据库连接池

Hibernate 5.x 配置 C3P0 连接池

首先准备好需要的 jar 包,这里我准备的是 Hibernate 5.2.10 版本:

  • hibernate-core-5.2.10.Final.jar
  • hibernate-c3p0-5.2.10.Final.jar
  • c3p0-0.9.5.2.jar
  • mchange-commons-java-0.2.11.jar

创建 hibernate.cfg.xml 配置文件,针对 C3P0 的配置代码如下:

<?xml version='1.0' encoding='UTF-8'?>  
<!DOCTYPE hibernate-configuration PUBLIC  
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
          "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  
<hibernate-configuration>
    <session-factory>
		<!--C3P0配置 -->
	    <property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
	    <property name="hibernate.c3p0.max_size">20</property>
	    <property name="hibernate.c3p0.min_size">5</property>
	    <property name="hibernate.c3p0.timeout">120</property>
	    <property name="automaticTestTable">Test</property>
	    <property name="hibernate.c3p0.max_statements">100</property>
	    <property name="hibernate.c3p0.idle_test_period">120</property>
	    <property name="hibernate.c3p0.acquire_increment">1</property>
	    <property name="c3p0.testConnectionOnCheckout">true</property>
	    <property name="c3p0.idleConnectionTestPeriod">18000</property>
	    <property name="c3p0.maxIdleTime">25000</property>
	    <property name="c3p0.idle_test_period">120</property>
	    
		<!-- ... 其它省略 -->

	</session-factory>
</hibernate-configuration>

hibernate.cfg.xml 配置完还没结束,我们可以启动 hibernate 看看控制台的日志输出,一般开发环境中感觉不到 C3P0 的优势作用,但只要 hibernate 能加载 C3P0 ,并且能够正常访问操作数据库,就说明 C3P0 配置成功了。

原文地址:https://www.cnblogs.com/uzipi/p/8116237.html