Hibernate连接池的配置方式有哪些

技术Hibernate连接池的配置方式有哪些这篇文章给大家分享的是有关Hibernate连接池的配置方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Hibernate3.0中,已经不

这篇文章给大家分享的是有关冬眠连接池的配置方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在休眠3.0中,已经不再支持数据库连接池了冬眠的作者在Hibernate.org中,明确指出在实践中发现数据库连接池有BUG,在某些种情会产生很多空连接不能释放,所以抛弃了对数据库连接池的支持。

一、Hibernate 连接池:C3P0 配置

?xmlversion='1.0 '编码='UTF-8 '?doctype Hibernate-配置公共'-//Hibernate/Hibernate配置dtd 3.0//EN ' ' http://Hibernate。SourceForge。net/Hibernate-配置-3.0。dtd ' Hibernate-配置会话-工厂!-配置事务实现方式-property name=' transaction。工厂类组织。冬眠。交易。JDBC交易工厂/物业!-配置JDBC里一批的大小-房产名称=' JDBC。batch _ size ' 50/property属性名称=' cache。使用_ second _ level _ cache ' false/属性!-配置线程安全的会话属性名=' current _ session _ context _ class '线程/属性!-显示SQL-属性名称=' show _ SQL ' true/属性属性名称=' format _ SQL ' true/属性!-配置数据库方言-属性名称=“语音”组织。冬眠。声音。甲骨文9方言/property!-配置数据库连接-属性名=' connection。' driver _ class ' Oracle。JDBC。司机。oracledriver/property name='连接。username ' 0804/property property name='连接。密码' 0804/属性名='连接。URL ' JDBC:甲骨文:瘦:@ 192。168 .0 .200:1521:orcl/property!-配置连接池-物业名称=' C3 P0。max _ size ' 2/属性属性名称=' C3 P0。min _ size ' 2/属性属性名称=' C3 P0。超时' 5000/物业物业名称=' C3 P0。max _ statements ' 100/属性lt

;property name="c3p0.idle_test_period">3000</property> <property name="c3p0.acquire_increment">2</property> <property name="c3p0.validate">false</property> <!-- 指定Hibernate管理的映射文件 --> <mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/> <mapping resource="com/ket/ruan/so/entity/Product.hbm.xml"/> </session-factory> </Hibernate-configuration>

二、Hibernate 连接池:使用proxool

<Hibernate-configuration> <session-factory> <property name="show_sql">true</property> <property name="dialect"> org.Hibernate.dialect.MySQLDialect  </property> <!-- 配置proxool属性 --> <!--- 使用proxoolConf.xml中定义的别名 --> <property name="proxool.pool_alias">pool1</property> <!-- 指定使用的proxoolConf文件的位置(这里在SRC下)--> <property name="proxool.xml">ProxoolConf.xml</property> <property name="connection.provider_class"> org.Hibernate.connection.ProxoolConnectionProvider  </property> ....  <!-- 指定Hibernate管理的映射文件 --> <mapping resource="com/ket/ruan/so/entity/User.hbm.xml"/> ....  </Hibernate-configuration>

1.ProxoolConf.xml:xml文件放在同级目录中,需要 proxool-0.8.3.jar。

<?xml version="1.0" encoding="gb2312"?> <something-else-entirely> <proxool> <alias>pool1</alias> <driver-url> jdbc:mysql://tpdb:3306/tpdb  </driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="username"/> <property name="password" value="password"/> <property name="schema" value="tpdb"/> <!-- ???--> <!-- 自动重连 --> <property name="autoReconnect" value="true"/> </driver-properties> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),  侦察到空闲的连接就马上回收,超时的销毁--> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- 指因未有空闲连接可以分配而在队列中等候的***请求数,超过这个请求数的  用户连接就不会被接受(正式库10,测试库1)--> <maximum-new-connections>10</maximum-new-connections> <!-- 最少保持的空闲连接数(正式库10,测试库1)--> <prototype-count>10</prototype-count> <!-- 连接池允许的***连接数(正式库700,测试库10)--> <maximum-connection-count>700</maximum-connection-count> <!-- 连接池开启的最小连接数(正式库350,测试库5)--> <minimum-connection-count>350</minimum-connection-count> <!-- 一个活动连接的最长时间15分钟,单位毫秒 --> <maximum-active-time>900000</maximum-active-time> <!-- 一个连接的最长活动时间4小时,单位毫秒 --> <maximum-connection-lifetime>14400000</maximum-connection-lifetime> <!-- 自动检查连接是否断掉开关 --> <test-before-use>true</test-before-use> <!-- 自动检查连接是否断的测试sql语句 --> <house-keeping-test-sql>select sysdate() from dual</house-keeping-test-sql> </proxool> </something-else-entirely>

2.数据库名可以这样指定

<property name="connection.url"> jdbc:sqlserver://localhost:1433;DatabaseName=supermarket </property>

3.URL 还可以传参数

<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="connection.url"> jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK </property>

目前,proxool用法,被大部分人认为是***秀的。

4.连接池监控

1).在web.xml中加上下面这段

<servlet> <servlet-name> proxool </servlet-name> <servlet-class> org.logicalcobwebs.proxool.admin.servlet.AdminServlet  </servlet-class> </servlet> <servlet-mapping> <servlet-name> proxool </servlet-name> <url-pattern> /Admin/proxool/ </url-pattern> </servlet-mapping>

2).http://localhost:8080/testHibernate/Admin/proxool
就可以监控到连接池的状况了!

感谢各位的阅读!关于“Hibernate连接池的配置方式有哪些”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/99770.html

(0)

相关推荐

  • 怎么优化JS代码

    技术怎么优化JS代码这篇文章主要讲解了“怎么优化JS代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么优化JS代码”吧!1、字符串的拼接 字符串的拼接在我们开发中会经

    攻略 2021年11月18日
  • Laravel基于reset怎么实现分布式事务

    技术Laravel基于reset怎么实现分布式事务这篇文章主要讲解了“Laravel基于reset怎么实现分布式事务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Lara

    攻略 2021年11月9日
  • php怎么看访问端是移动端还是pc端(php怎么判断是pc还是手机端)

    技术php如何检查是不是微信端这篇文章主要讲解了“php如何检查是不是微信端”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何检查是不是微信端”吧!php检查是不是

    攻略 2021年12月15日
  • 746. 使用最小花费爬楼梯

    技术746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值cost[i](下标从 0 开始)。
    每当你爬上一个阶梯你都要花费对应

    礼包 2021年10月26日
  • 怎样结合Jexus+Kestrel 部署asp.net core生产环境

    技术怎样结合Jexus+Kestrel 部署asp.net core生产环境本篇文章为大家展示了怎样结合Jexus+Kestrel 部署asp.net core生产环境,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过

    攻略 2021年11月19日
  • 抖音刷双击在线秒刷,怎么在平台刷抖音赞呢

    技术抖音刷双击在线秒刷,怎么在平台刷抖音赞呢增加抖音点赞量,我们最快速的方法就是去抖音刷赞双击网站,在该网站上可以刷抖音作品点赞量双击量,从而快速的增加抖音作品点赞。那有些抖音用户就纳闷了,花钱买抖音赞,抖音点赞多有什么

    测评 2021年10月21日