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)

相关推荐

  • Linux操作系统源

    技术Linux操作系统源 Linux操作系统源记录常见linux操作系统的源以及换源方式。Linux发行版分类
    Linux的发行版本根据维护主体的不同可以大体分为两类,一类是商业公司维护的发行版本,一类

    礼包 2021年12月21日
  • C#中可为NULL的运算符怎么用

    技术C#中可为NULL的运算符怎么用这篇文章主要介绍了C#中可为NULL的运算符怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。?.和?[]null条

    攻略 2021年12月1日
  • 如何进行Nginx静态文件服务器搭建及怎么解析autoindex模块

    技术如何进行Nginx静态文件服务器搭建及怎么解析autoindex模块这期内容当中小编将会给大家带来有关如何进行Nginx静态文件服务器搭建及怎么解析autoindex模块,文章内容丰富且以专业的角度为大家分析和叙述,

    攻略 2021年10月29日
  • ad pads allegro哪个好学(halcyon ad blocker)

    技术如何进行GoAead RCE预警分析如何进行GoAead RCE预警分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。0x00 背景介绍12月12日,M

    攻略 2021年12月20日
  • 前端异步请求axios的介绍与用法

    技术前端异步请求axios的介绍与用法 前端异步请求axios的介绍与用法官网
    http://www.axios-js.com/
    axios是什么1.Axios是一个基于promise的HTTP库,可以

    礼包 2021年11月24日
  • javascript中如何监听页面DOM变动并高效响应

    技术javascript中如何监听页面DOM变动并高效响应本篇内容介绍了“javascript中如何监听页面DOM变动并高效响应”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一

    攻略 2021年11月15日