通过本教程,我想与您分享如何配置您的 Java 项目以及它的休眠配置文件 hibernate.cfg.xml 以使用更专业和生产就绪的连接池提供程序C3P0

Hibernate 的内部连接池算法是初级的,是为开发和测试目的而提供的。

在我之前的博客文章中,我使用了默认的休眠连接池,但在生产环境中使用它不如C3P0好好消息是,更新使用 Hibernate 的默认连接轮询以使用更好的连接轮询的 Java 项目并不需要花费太多精力。

要更新使用默认连接池的 Java 项目以使用 C3P0 ,我们需要执行 2 个步骤:

  • 通过添加hibernate-c3p0的依赖来更新 pom.xml
  • 更新我们项目中的 Hibernate 配置文件hibernate.cfg.xml  以使用新的C3P0 连接池。

添加 C3P0 Maven 依赖

将 c3p0 连接池依赖添加到我们的项目中。打开您的 pom.xml 文件并在依赖项列表中再添加一项。 

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-c3p0</artifactId><version>5.2.12.Final</version>
</dependency>

或者您可以下载 JAR 文件并将其手动添加到您的库列表中。以下是下载 JAR 文件的链接:

https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0/5.2.12.Final

更新 hibernate.cfg.xml 以使用 C3P0 连接池

如果设置 hibernate.c3p0.* 属性,Hibernate 使用 C3P0ConnectionProvider 进行连接池。

如果您使用默认休眠的默认连接池,则从您的 hibernate.cfg.xml 文件中删除以下行:

<property name="connection.pool_size">10</property>

代替上面的行,添加以下 4:

 <property name="hibernate.c3p0.min_size">3</property><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.timeout">300</property><property name="hibernate.c3p0.max_statements">50</property>

在哪里: 

  • hibernate.c3p0.min_size – 池中的最小 JDBC 连接数
  • hibernate.c3p0.max_size – 池中的最大 JDBC 连接数
  • hibernate.c3p0.timeout - 指定何时从池中删除空闲连接(以秒为单位),
  • hibernate.c3p0.max_statements – 将被缓存的准备好的语句的数量。缓存很好,因为它提高了应用程序的性能。但如果您决定关闭缓存,则将此值设置为0。

这是我更新的 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.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/photo_app</property><property name="hibernate.connection.username">Sergey</property><property name="hibernate.connection.password">sergey</property><property name="hibernate.id.new_generator_mappings">true</property>  <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</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.appsdeveloperblog.ws.io.entity.UserProfileEntity"/></session-factory>
</hibernate-configuration>

我希望这个简短的教程对你有所帮助。

配置 Hibernate 以使用 C3P0 连接池相关推荐

  1. Mysql超时重连解决方案3: 配置c3p0连接池(终极方案)

    前面的文章中,我介绍了修改mysql默认超时时间和配置proxool连接池的方法来解决Mysql超时重连的问题.方案1不推荐,它并没有从根本上解决问题:方案2可用,但配置相对复杂:所有才有了方案3,它 ...

  2. Spring+Hibernate+c3p0连接池配置-连接无法释放的问题解决方案

     1.Spring+Hibernate+c3p0连接池配置: <?xml version="1.0" encoding="UTF-8"?> < ...

  3. Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)

    拷贝jar包 找到我们的hibernate安装包,在lib目录下找到optional目录,打开c3p0文件,拷贝里面的jar包到eclipse里 写一个测试类,代码入下 public class C3 ...

  4. Hibernate C3P0连接池配置

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

  5. Hibernate中配置C3P0连接池

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转自:h ...

  6. MyEclipse中Hibernate+C3P0连接池配置

    首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了.     以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的数据库操作,就会导致 ...

  7. c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate

    目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...

  8. C3P0连接池配置方式

    c3p0的配置方式分为三种,分别是  1.setters一个个地设置各个配置项  2.类路径下提供一个c3p0.properties文件  3.类路径下提供一个c3p0-config.xml文件 1. ...

  9. hibernate4配置c3p0连接池报错

    在hibernate的xml文件中配置c3p0连接池时,运行报错: java.lang.ClassNotFoundException: Could not load requested class : ...

最新文章

  1. 定时自动刷新网页在线工具分享
  2. linux ksh怎么查找僵尸进程,Unix 进程管理
  3. 曹大带我学 Go(11)—— 从 map 的 extra 字段谈起
  4. flink从0到第一个应用成功运行遇到的所有问题和解决方法
  5. 作者:窦志成,男,中国人民大学信息学院研究员、硕士生导师。
  6. javascript精雕细琢(三):作用域与作用域链
  7. 21.5 windows_21_Library_use_DLL_Invoke 动态库补充5
  8. 最新dotCMS SQL注入漏洞 攻击者可获得敏感数据 绿盟科技发布安全威胁通告
  9. 计算机啊如何进入代码编写界面,一段程序代码写完以后是如何转换成有操作界面的软件的?...
  10. u盘推荐知乎_u盘系统盘制作 知乎ghost安装教程
  11. CentOS7安装FTP服务器及默认21端口修改
  12. E大调第一个指型_初学吉他大调与对应小调的知识,看完这个就懂了
  13. 丢花娟(约瑟夫环问题)
  14. 接口(interface、implement)
  15. 三种方法求解Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1,当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
  16. linux万兆网络传输速度,万兆以太网传输速度实测 (结果: 单向9984Mbps, 双向19808Mbps)...
  17. 【转】什么是预研?产品预研与技术预研
  18. 【建议收藏】一文了解FPC柔性电路板(5.29更新)
  19. 使用 GPG 加密和解密文件
  20. 干货丨加密数据迁移二三事

热门文章

  1. 【BZOJ2073/POI2004】PRZ
  2. Python 画桑葚图
  3. C语言小游戏快速入门--推箱子
  4. Openlayers之标注功能四:聚合标注
  5. c语言程序设计学生管理系统结构图,c语言程序设计学生管理系统.doc
  6. conda 装tensorboardx_Pytorch数据可视化:TensorboardX安装及使用(安装测试+实例演示)...
  7. 直播网站源码,Android调用系统照相机和摄像机
  8. 谭浩强c语言第7章14题,谭浩强C语言_第7章_函数2.ppt
  9. linux下Yum方式安装gcc
  10. 条件语句之 if 语句