猿教程 Logo

Hibernate中配置C3P0连接池

连接池:连接池对于性能是有好处的,因为它阻止了Java应用程序每次与数据库交互时创建连接,并最大限度地降低了打开和关闭连接的成本。 请参阅wiki连接池说明

Hibernate带有内部连接池,但不适合生产使用。 在本教程中,我们向您展示如何将第三方连接池 - C3P0与Hibernate集成。


获取hibernate-c3p0.jar

要将c3p0与Hibernate集成,您需要使用hibernate-c3p0.jar,可以从JBoss存储库获取。

文件:pom.xml

<project ...>

	<repositories>
		<repository>
			<id>JBoss repository</id>
			<url>http://repository.jboss.org/nexus/content/groups/public/</url>
		</repository>
	</repositories>

	<dependencies>

		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>3.6.3.Final</version>
		</dependency>
		
		<!-- Hibernate c3p0 connection pool -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-c3p0</artifactId>
			<version>3.6.3.Final</version>
		</dependency>

	</dependencies>
</project>

2.配置c3p0的属性

要配置c3p0,请将c3p0配置详细信息放在“hibernate.cfg.xml”中,如下所示:

文件:hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:MKYONG</property>
  <property name="hibernate.connection.username">mkyong</property>
  <property name="hibernate.connection.password">password</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="hibernate.default_schema">MKYONG</property>
  <property name="show_sql">true</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>
        
  <mapping class="com.mkyong.user.DBUser"></mapping>
</session-factory>
</hibernate-configuration>
  1. hibernate.c3p0.min_size - 池中最少的JDBC连接数。 休眠默认值:1

  2. hibernate.c3p0.max_size - 池中JDBC连接的最大数量。 休眠默认值:100

  3. hibernate.c3p0.timeout - 从池中删除空闲连接(第二个)。 休眠默认值:0,永不过期。

  4. hibernate.c3p0.max_statements - 准备好的语句的数量将被缓存。 提高性能 休眠默认值:0,缓存禁用。

  5. hibernate.c3p0.idle_test_period - 连接自动验证之前的空闲时间(以秒为单位)。 休眠默认值:0

注意有关hibernate-c3p0配置设置的详细信息,请阅读本文。


运行结果

完成后,运行项目并查看以下输出:


在连接初始化过程中,在连接池中创建5个数据库连接,为Web应用程序准备好重新使用。


参考

  1. http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#d0e1748

  2. http://www.mchange.com/projects/c3p0/index.html#appendix_d


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Hibernate/configure-the-c3p0-connection.html