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 配置成功了。