IT Notes‎ > ‎Java‎ > ‎Java Web / Java EE‎ > ‎Hibernate‎ > ‎

Hibernate c3p0

Hibernate 可以使用多种连接池工具,而且它本身也内置的有,但是官方还是推荐用第三方的,比如 c3p0.

1. 为 Hibernate 项目增加 c3p0 支持

c3p0 是 Hibernate 推荐的连接池工具,如果要和 Hibernate 集成使用,通常在 pom.xml 中添加如下内容就可以了:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>4.3.5.Final</version>
</dependency>

但因外中共封锁网络,添加后,相关的 jar 文件根本下载不了,项目报错信息如下:

hibernate c3p0 misses jar files

此时可以从 Hibernate 官网下下载的 hibernate-release-4.3.5.Final 完整包解压后的文件中找到,我本机的位置是:
C:\Users\caoi\Desktop\hibernate-release-4.3.5.Final\lib\optional\c3p0
将该目录下的三个 jar 文件,复制到上图中所示的目录即可。

2. Hibernate c3p0 配置

在项目 PIS 中,Hibernate c3p0 配置信息如下:
<!-- 指定连接池里最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 指定连接池里最小连接数 -->
<property name="hibernate.c3p0.min_size">1</property>
<!-- 指定连接池里连接的超时时长 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 指定连接池里最大缓存多少个Statement对象 -->
<property name="hibernate.c3p0.max_statements">100</property>

<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>

以上配置中,前四项是 Developer Guide 中提到的最重要的几项。
其他参数信息,可以在 http://www.mchange.com/projects/c3p0/#hibernate-specific 查到:
 c3p0-native property name
 hibernate configuration key
 c3p0.acquireIncrement  hibernate.c3p0.acquire_increment
 c3p0.idleConnectionTestPeriod hibernate.c3p0.idle_test_period
 c3p0.initialPoolSize not available -- uses minimum size
 c3p0.maxIdleTime hibernate.c3p0.timeout
 c3p0.maxPoolSize hibernate.c3p0.max_size
 c3p0.maxStatements hibernate.c3p0.max_statements
 c3p0.minPoolSize hibernate.c3p0.min_size
 c3p0.testConnectionOnCheckout hibernate.c3p0.validate hibernate 2.x only!

官网:http://www.mchange.com/projects/c3p0/



Comments