用数据库连接池解决org.hibernate.exception.JDBCConnectionException:could not execute query

次好像说到了用修改数据库系统参数的方式来解决长时间不连接出现的问题,但是,那并不是根本的解决方式.在网上查了一下,原来可以用数据库连接池来解决这个问题,这可是从根本上的解决.

这位大神:http://blog.csdn.net/isnotsuitable/article/details/6990505 总结了一下,hibernate支持的连接池有这几个:

1.DriverManagerConnectionProvider:代表由Hibernate提供的默认的数据库连接池 

2.C3P0ConnectionProvider:代表C3P0连接池

3.ProxoolConnectionProvider:代表Proxool连接池

4.DBCPConnectionProvider:代表DBCP连接池

而文档中推荐的是用C3P0,所以就按照这种方式解决:

步骤如下:

步骤一:

导入C3P0.jar.

步骤二:

在hibernate.cfg.xml中添加C3P0的配置:

[html]  view plain copy
  1. <!-- 配置连接池 -->  
  2.         <property name="hibernate.connection.provider_class">  
  3.                org.hibernate.connection.C3P0ConnectionProvider  
  4.             </property>  
  5.             <property name="c3p0.acquire_increment">1</property>  
  6.             <property name="c3p0.idle_test_period">300</property>  
  7.             <property name="c3p0.max_size">20</property>  
  8.            <property name="c3p0.max_statements">100</property>  
  9.             <property name="c3p0.min_size">5</property>  
  10.             <property name="c3p0.timeout">90</property>  
  11.             <property name="c3p0.preferredTestQuery ">select 1 from user where id=1</property>  
  12.             <property name="c3p0.idleConnectionTestPeriod ">18000</property>             
  13.            <property name="c3p0.maxIdleTime">25000</property>           
  14.            <property name="c3p0.testConnectionOnCheckout">true</property>  

hibernate.cfg.xml文件:

[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <!DOCTYPE hibernate-configuration PUBLIC     
  3.   "-//Hibernate/Hibernate Configuration DTD 3.0//EN"     
  4.   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5. <hibernate-configuration>  
  6.     <session-factory>  
  7.         <!-- 配置事务实现方式 -->  
  8.         <property name="transaction.factory_class">  
  9.             org.hibernate.transaction.JDBCTransactionFactory  
  10.         </property>  
  11.   
  12.         <!-- 配置JDBC里batch的大小 -->  
  13.         <property name="jdbc.batch_size">50</property>  
  14.         <property name="cache.use_second_level_cache">false</property>  
  15.   
  16.         <!-- 配置线程安全的session -->  
  17.         <property name="current_session_context_class">thread</property>  
  18.   
  19.         <!-- 显示SQL -->  
  20.         <property name="show_sql">false</property>  
  21.         <property name="format_sql">false</property>  
  22.   
  23.         <!-- 配置数据库方言 -->  
  24.         <property name="dialect">  
  25.             org.hibernate.dialect.MySQLDialect  
  26.         </property>  
  27.   
  28.         <!-- 配置数据库连接 -->  
  29.         <property name="connection.driver_class">  
  30.             com.mysql.jdbc.Driver  
  31.         </property>  
  32.         <property name="connection.username">root</property>  
  33.         <property name="connection.password">111111</property>  
  34.         <property name="connection.url">  
  35.             jdbc:mysql://localhost:3306/alumnus  
  36.         </property>  
  37.         <!-- 配置连接池 -->  
  38.         <property name="hibernate.connection.provider_class">  
  39.                org.hibernate.connection.C3P0ConnectionProvider  
  40.             </property>  
  41.             <property name="c3p0.acquire_increment">1</property>  
  42.             <property name="c3p0.idle_test_period">300</property>  
  43.             <property name="c3p0.max_size">20</property>  
  44.            <property name="c3p0.max_statements">100</property>  
  45.             <property name="c3p0.min_size">5</property>  
  46.             <property name="c3p0.timeout">90</property>  
  47.             <property name="c3p0.preferredTestQuery ">select 1 from user where id=1</property>  
  48.             <property name="c3p0.idleConnectionTestPeriod ">18000</property>             
  49.            <property name="c3p0.maxIdleTime">25000</property>           
  50.            <property name="c3p0.testConnectionOnCheckout">true</property>  
  51.              
  52.         <!-- 指定hibernate管理的映射文件 -->  
  53.         <mapping resource="com/alumnus/data/Users.hbm.xml" />  
  54.         <mapping resource="com/alumnus/data/Alumnus.hbm.xml" />  
  55.         <mapping resource="com/alumnus/data/Register.hbm.xml" />  
  56.     </session-factory>  
  57. </hibernate-configuration>  

这样,就不会再出现错误啦.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值