Hibernate C3P0连接池经验总结

开发 后端
这里介绍Hibernate C3P0连接池,Hibernate自带的连接池算法相当不成熟。 它只是为了让你快些上手,并不适合用于产品系统或性能测试中。

本文向大家介绍Hibernate C3P0连接池,可能好多人还不了解Hibernate C3P0连接池,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

Hibernate自带的连接池算法相当不成熟。 它只是为了让你快些上手,并不适合用于产品系统或性能测试中。 出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size即可。这将关闭Hibernate自带的连接池。 例如, 你可能会想用C3P0.

Hibernate C3P0连接池是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib目录下。 如果你设置了hibernate.c3p0.*相关的属性, Hibernate将使用 C3P0ConnectionProvider来缓存JDBC连接。 如果你更原意使用Proxool, 请参考发 行包中的hibernate.properties并到Hibernate网站获取更多的信息。

这是一个使用C3P0的hibernate.properties样例文件(来自Hibernate包中etc目录下):

  1. ###########################  
  2. ### C3P0 Connection Pool###  
  3. ###########################  
  4.  
  5. #hibernate.c3p0.max_size 2  
  6. #hibernate.c3p0.min_size 2  
  7. #hibernate.c3p0.timeout 5000  
  8. #hibernate.c3p0.max_statements 100  
  9. #hibernate.c3p0.idle_test_period 3000  
  10. #hibernate.c3p0.acquire_increment 2  
  11. #hibernate.c3p0.validate false 

在hibernate.cfg.xml文件里面加入如下的配置:

  1. <!-- 最大连接数 --> 
  2. <property name="hibernate.c3p0.max_size">20</property> 
  3.  
  4. <!-- 最小连接数 --> 
  5. <property name="hibernate.c3p0.min_size">5</property> 
  6.  
  7. <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 --> 
  8. <property name="hibernate.c3p0.timeout">120</property> 
  9.  
  10. <!-- 最大的PreparedStatement的数量 --> 
  11. <property name="hibernate.c3p0.max_statements">100</property> 
  12.  
  13. <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒--> 
  14. <property name="hibernate.c3p0.idle_test_period">120</property> 
  15.  
  16. <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 --> 
  17. <property name="hibernate.c3p0.acquire_increment">2</property> 
  18.  
  19. <!-- 每次都验证连接是否可用 --> 
  20. <property name="hibernate.c3p0.validate">true</property> 

完整示例如下(hibernate.properties):

  1. hibernate.connection.driver_class = org.postgresql.Driver  
  2. hibernate.connection.url = jdbc:postgresql://localhost/mydatabase  
  3.  
  4. hibernate.connection.username = myuser 
  5. hibernate.connection.password = secret 
  6. hibernate.c3p0.min_size=5 
  7. hibernate.c3p0.max_size=20 
  8. hibernate.c3p0.timeout=1800 
  9. hibernate.c3p0.max_statements=50 
  10. hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 

以上介绍Hibernate C3P0连接池。

【编辑推荐】

  1. 浅析Hibernate orm框架
  2. Hibernate Callback简单概括
  3. 概述Hibernate dbcp连接池使用方法
  4. Hibernate Shard三种策略剖析
  5. 讨论Hibernate和模型对象
责任编辑:佚名 来源: IBMDW
相关推荐

2009-07-15 11:14:30

c3p0连接池

2009-09-22 14:44:18

Hibernate.c

2015-10-29 16:59:47

数据库

2009-06-17 09:34:31

Hibernate3Hibernate2连接池

2018-07-20 14:50:43

Java数据库连接池

2015-04-27 09:50:45

Java Hibern连接池详解

2009-09-29 16:32:11

OJB Hiberna

2020-03-04 13:55:28

c3p0数据库连接池

2021-05-12 07:32:58

数据库C3P0项目

2009-08-24 14:56:01

C#连接Access

2009-09-25 17:26:55

使用Hibernate

2009-09-27 14:53:38

Hibernate S

2009-06-17 16:22:45

Hibernate连接

2009-09-22 16:04:50

Hibernate连接

2009-09-22 14:52:55

Hibernate p

2009-09-25 16:55:08

Hibernate初始

2009-06-24 07:53:47

Hibernate数据

2010-07-20 14:50:42

Tomcat+SQL

2009-06-17 09:59:46

Hibernate 连

2010-07-08 10:06:43

Tomcat+SQL
点赞
收藏

51CTO技术栈公众号