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)

相关推荐

  • Elasticsearch中如何进行Match查询

    技术Elasticsearch中如何进行Match查询Elasticsearch中如何进行Match查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如

    攻略 2021年11月16日
  • hbase学习 rowKey的设计-4

    技术hbase学习 rowKey的设计-4 hbase学习 rowKey的设计-4hbase学习 rowKey的设计-4访问hbase table中的行,只有三种方式:
    1 通过单个row key访问

    礼包 2021年12月22日
  • 文科二本大学,文科二本有哪些好的大学

    技术文科二本大学,文科二本有哪些好的大学二本大学多为省属大学或者是非211工程大学文科二本大学,不可否认的是一本大学和二本大学在师资和硬件方面还是有一定差距的的,这也就是为什么大家都喜欢考一本大学,不愿意考二本大学的原因

    生活 2021年10月24日
  • jquery trim方法能去除哪些符号

    技术jquery trim方法能去除哪些符号这篇文章主要介绍“jquery trim方法能去除哪些符号”,在日常操作中,相信很多人在jquery trim方法能去除哪些符号问题上存在疑惑,小编查阅了各式资料,整理出简单好

    攻略 2021年11月15日
  • Python的logger怎么配置

    技术Python的logger怎么配置这篇文章主要介绍“Python的logger怎么配置”,在日常操作中,相信很多人在Python的logger怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年12月1日
  • jquery如何查询第一个子节点

    技术jquery如何查询第一个子节点本篇内容主要讲解“jquery如何查询第一个子节点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何查询第一个子节点”吧!

    攻略 2021年11月16日