JDBCConnectionException: could not execute query,数据库连接池问题

  1、做了个后台编辑系统,上传到服务器后正常使用,但是第二天却出现了如下的问题,

    

  经过查询资料知道了是数据库连接池的问题。

  按照网上网友的说法,运行一个系统,测试没有问题,然后把本地时间更改到后天,再次运行就报这个错误了!(首先启动tomcat,打开其中的一个系统,比如students, 运行无误,可以登录系统,把系统时间设置为1天后,再次打开, 就出现了上面图片中的错    误,亲自试一下就是这样子滴,别忘了打开tomcat就OK)。

    Hibernate支持如下的连接池:
   DriverManagerConnectionProvider:代表由Hibernate提供的默认的数据库连接池
   C3P0ConnectionProvider:代表C3P0连接池
   ProxoolConnectionProvider:代表Proxool连接池
   DBCPConnectionProvider:代表DBCP连接池
   DatasourceConnectionProvider:代表在受管理环境中由容器提供的数据源

  默认连接池并不支持在分配一个连接时,测试其有效与否的功能,而C3P0、Proxool、DBCP都提供了这样的功能,正好可以解决上述问题,在这里我们使用c3p0来解决。

  在hibernate.cfg.xml文件里面加入如下的配置:

 

  

  <property name="hibernate.connection.provider_class">
    org.hibernate.connection.C3P0ConnectionProvider
  </property>

  <!-- 最大连接数 -->
  <property name="hibernate.c3p0.max_size">20</property>
  <!-- 最小连接数 -->
  <property name="hibernate.c3p0.min_size">5</property>
  <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
  <property name="hibernate.c3p0.timeout">120</property>
  <!-- 最大的PreparedStatement的数量 -->
  <property name="hibernate.c3p0.max_statements">100</property>
  <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
  <property name="hibernate.c3p0.idle_test_period">120</property>
  <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
  <property name="hibernate.c3p0.acquire_increment">2</property>
  <!-- 每次都验证连接是否可用 -->
  <property name="hibernate.c3p0.validate">true</property>

  <!--每*秒检查所有连接池中的空闲连接。Default: 0 -->
  <property name="c3p0.idleConnectionTestPeriod ">18000</property>
  <!--最大空闲时间,*秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
  <property name="c3p0.maxIdleTime">25000</property>

 

 想看c3p0更详细的说明可以到http://www.blogjava.net/sway/archive/2008/11/05/238860.html去
 
 
 
 

转载于:https://www.cnblogs.com/2589-spark/p/3680197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值