hibernate 数据库连接池

本文介绍了一个项目中遇到的MySQL链接断开的问题及解决方案。通过调整为连接池方式,有效解决了生产环境中链接频繁断开的情况,并提供了proxoolconf.xml和hibernate.cfg.xml的具体配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做一个项目的时候,发现一个问题  在本机 测试 都ok 但是发布到 生产机上 就出了 问题

 

提示 链接不到数据库  用的mysql 

 

后来 发现了  是mysql 设置的 链接时间  比较短

 

考虑一下 把数据库的链接 改成了 连接池的方式 

 

问题 解决了

 

下面 把链接池的代码贴出来

 

proxoolconf.xml  放在 src 的根目录

 

<?xml version="1.0" encoding="UTF-8"?>

<!-- the proxool configuration can be embedded within your own application's.

Anything outside the "proxool" tag is ignored. -->

<something-else-entirely>

<proxool>

<!--连接池的别名-->

<alias>DBPool</alias>

<!--proxool只能管理由自己产生的连接-->

<driver-url>

jdbc:mysql://121.199.27.237:3306/zp11a1_db?useUnicode=true&amp;characterEncoding=GBK

</driver-url>

<!--  -->JDBC驱动程序-->

<driver-class>com.mysql.jdbc.Driver</driver-class>

<driver-properties>

<property name="user" value="zp11a1"/>

<property name="password" value="k6c5t6h4v4"/>

</driver-properties>

<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回

收,超时的销毁-->

<house-keeping-sleep-time>90000</house-keeping-sleep-time>

<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的

用户连接就不会被接受-->

<maximum-new-connections>20</maximum-new-connections>

<!-- 最少保持的空闲连接数-->

<prototype-count>5</prototype-count>

<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的

等待请求数由maximum-new-connections决定-->

<maximum-connection-count>100</maximum-connection-count>

<!-- 最小连接数-->

<minimum-connection-count>10</minimum-connection-count>

</proxool>

</something-else-entirely>

 

 

hibernate.cfg.xml 的配置 如下

 

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration

PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

 <session-factory>

  <property name="hibernate.connection.provider_class">

   org.hibernate.connection.ProxoolConnectionProvider

  </property>

  <property name="hibernate.proxool.pool_alias">DBPool</property>

  <property name="hibernate.proxool.xml">
   proxoolconf.xml
  </property>

  <!--是否将运行期生成的SQL输出到日志以供调试-->

  <property name="show_sql">true</property>

  <!--指定连接的语言-->

  <property name="dialect">
   org.hibernate.dialect.MySQLDialect
  </property>

  <!--映射Student这个资源-->

  <mapping resource="com/bsoar/hibernate/pojo/Cancellation.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/Arrearage.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/Role.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/CustomerInfo.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/Notice.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/Function.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/Employee.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/TOrder.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/PriceFile.hbm.xml" />
  <mapping resource="com/bsoar/hibernate/pojo/PolicyFile.hbm.xml" />


 </session-factory>

</hibernate-configuration>

 

 

其他的不用改变

问题 解决!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值