`
jaychang
  • 浏览: 734780 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

Hibernate C3P0连接池经验总结

阅读更多

本文向大家介绍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连接池。

分享到:
评论

相关推荐

    Java中常用的数据库连接池[定义].pdf

    - c3p0:这是一个JDBC连接池,集成在Hibernate中,支持JDBC3和JDBC2扩展规范。c3p0提供了连接和Statement的池化,具备自动检测失效连接的功能。 - Druid:阿里巴巴开发的数据库连接池,不仅是一个连接池,还包括...

    hibernate-release-4.2.2.Final.zip

    开发者还可以通过配置优化,如启用第二级缓存、使用C3P0连接池、调整缓存策略等来提升系统性能。 总结,hibernate-release-4.2.2.Final.zip这个压缩包为开发者提供了一个深入了解和使用Hibernate的全面平台。无论是...

    搭建SSH(struts,spring hibernate)框架

    3. **数据库连接**:配置Oracle数据库连接,包括JDBC驱动和数据库连接池(如C3P0或DBCP)。 4. **Web.xml配置**:配置Servlet容器的初始化参数,比如Spring的ApplicationContext加载路径。 5. **项目结构**:创建...

    对于SSH项目的一些经验总结

    - **连接池管理**:采用c3p0连接池管理数据库连接,避免频繁创建和销毁连接带来的性能开销。 - **HQL查询**:HQL(Hibernate Query Language)是一种面向对象的查询语言,能够更加方便地进行查询操作。 #### 4. ...

    hibernate回顾

    随着版本的升级,Hibernate引入了很多新特性,如批处理、懒加载、延迟加载、集合分页等,同时也对性能进行了优化,如C3P0连接池的使用,提高并发处理能力。 ### 9. 实战应用 在实际项目中,Hibernate常与其他框架如...

    Java开源项目Hibernate包作用详解

    C3P0和Proxool都是非常成熟且性能良好的连接池解决方案,可以帮助优化数据库访问性能。根据实际需求选择其中之一即可。 - **commons-pool.jar**与**commons-dbcp.jar**:这两个库均来自Apache Commons,分别提供了...

    JDBC连接各种数据库经验技巧集萃

    为了提高性能和资源利用率,建议使用连接池来管理数据库连接,如 C3P0、HikariCP 或 DBCP。连接池可以复用已打开的连接,避免频繁创建和关闭连接带来的开销。 3. PreparedStatement 与 Statement 在执行 SQL 语句时...

    Javaweb开发中的常用基础jar.zip

    数据库连接池如C3P0、Druid和HikariCP等,它们管理数据库连接的创建和关闭,提高了数据库操作的性能和资源利用率。同时,数据库驱动如MySQL Connector/J、Oracle JDBC驱动等,是Java程序连接特定数据库所必需的。 ...

    简单的SSH框架例子 使用MyEclipse2013编写

    在本项目中,c3p0是一个常用的数据库连接池,它优化了数据库连接的创建和释放,提高了系统性能。 MyEclipse2013是一个强大的Java EE集成开发工具,集成了多种开发功能,包括代码编辑、调试、部署等,使得开发者能够...

    java面试资料大全

    2. **数据库连接池**:理解数据库连接池的作用,熟悉C3P0、Druid等连接池组件的配置和使用。 3. **事务管理**:掌握事务的ACID特性,了解JTA、XA等分布式事务处理机制。 4. **数据库优化**:理解索引、视图、存储...

    迅雷java高级程序员-面试归来-2010-05-21

    了解不同的连接池实现(如C3P0、HikariCP等)及其配置参数对于提高系统性能至关重要。 7. **MySQL支持的数据库引擎** - MySQL支持多种存储引擎,如InnoDB、MyISAM等,每种引擎都有其特点和适用场景。 - 掌握不同...

    JDBC技巧汇总.pdf

    - JDBC中可以通过连接池技术(如HikariCP、C3P0等)来管理数据库连接,避免频繁创建和销毁连接带来的开销。 **错误处理:** - 在使用JDBC进行数据库操作时,必须妥善处理可能出现的各种异常情况。 - 例如,当连接...

    面试问题.txt

    - **数据库连接池**:学习如何使用C3P0、Druid等数据库连接池技术,提高数据库访问效率。 - **事务管理**:理解事务的ACID特性,掌握本地事务和分布式事务的处理机制。 ### 9. SSL **知识点解析:** - **SSL/TLS...

    java面试题(非常好)

    10. **数据库**:SQL基础,数据库事务的ACID属性,索引原理,JDBC操作,连接池的配置与使用(如HikariCP,C3P0),以及ORM框架(如Hibernate,MyBatis)的使用。 11. **网络编程**:TCP/IP协议,HTTP协议,Socket...

Global site tag (gtag.js) - Google Analytics