配置 Hibernate 以使用 C3P0 连接池
通过本教程,我想与您分享如何配置您的 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 连接池相关推荐
- Mysql超时重连解决方案3: 配置c3p0连接池(终极方案)
前面的文章中,我介绍了修改mysql默认超时时间和配置proxool连接池的方法来解决Mysql超时重连的问题.方案1不推荐,它并没有从根本上解决问题:方案2可用,但配置相对复杂:所有才有了方案3,它 ...
- Spring+Hibernate+c3p0连接池配置-连接无法释放的问题解决方案
1.Spring+Hibernate+c3p0连接池配置: <?xml version="1.0" encoding="UTF-8"?> < ...
- Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)
拷贝jar包 找到我们的hibernate安装包,在lib目录下找到optional目录,打开c3p0文件,拷贝里面的jar包到eclipse里 写一个测试类,代码入下 public class C3 ...
- Hibernate C3P0连接池配置
本文向大家介绍Hibernate C3P0连接池,可能好多人还不了解Hibernate C3P0连接池,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. Hibernate自带的连接池算 ...
- Hibernate中配置C3P0连接池
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转自:h ...
- MyEclipse中Hibernate+C3P0连接池配置
首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了. 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的数据库操作,就会导致 ...
- c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate
目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...
- C3P0连接池配置方式
c3p0的配置方式分为三种,分别是 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p0-config.xml文件 1. ...
- hibernate4配置c3p0连接池报错
在hibernate的xml文件中配置c3p0连接池时,运行报错: java.lang.ClassNotFoundException: Could not load requested class : ...
最新文章
- 定时自动刷新网页在线工具分享
- linux ksh怎么查找僵尸进程,Unix 进程管理
- 曹大带我学 Go(11)—— 从 map 的 extra 字段谈起
- flink从0到第一个应用成功运行遇到的所有问题和解决方法
- 作者:窦志成,男,中国人民大学信息学院研究员、硕士生导师。
- javascript精雕细琢(三):作用域与作用域链
- 21.5 windows_21_Library_use_DLL_Invoke 动态库补充5
- 最新dotCMS SQL注入漏洞 攻击者可获得敏感数据 绿盟科技发布安全威胁通告
- 计算机啊如何进入代码编写界面,一段程序代码写完以后是如何转换成有操作界面的软件的?...
- u盘推荐知乎_u盘系统盘制作 知乎ghost安装教程
- CentOS7安装FTP服务器及默认21端口修改
- E大调第一个指型_初学吉他大调与对应小调的知识,看完这个就懂了
- 丢花娟(约瑟夫环问题)
- 接口(interface、implement)
- 三种方法求解Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1,当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
- linux万兆网络传输速度,万兆以太网传输速度实测 (结果: 单向9984Mbps, 双向19808Mbps)...
- 【转】什么是预研?产品预研与技术预研
- 【建议收藏】一文了解FPC柔性电路板(5.29更新)
- 使用 GPG 加密和解密文件
- 干货丨加密数据迁移二三事
热门文章
- 【BZOJ2073/POI2004】PRZ
- Python 画桑葚图
- C语言小游戏快速入门--推箱子
- Openlayers之标注功能四:聚合标注
- c语言程序设计学生管理系统结构图,c语言程序设计学生管理系统.doc
- conda 装tensorboardx_Pytorch数据可视化:TensorboardX安装及使用(安装测试+实例演示)...
- 直播网站源码,Android调用系统照相机和摄像机
- 谭浩强c语言第7章14题,谭浩强C语言_第7章_函数2.ppt
- linux下Yum方式安装gcc
- 条件语句之 if 语句