java代码连接mysql数据库的时候一般在空闭8个小时的时候会自动断开数据库与程序代码的连接,如果在断开连接之后,我们再次去访问时候程序就会报错,出现空指针,这样说可以不是很直白,我举个例子就比较清楚了,我们经常看见我们的项目上线后白天可以正常访问,但是再到明天就不能访问了,那我们解决这个问题方法有两种,独占网络下面就来讲一下这两种方法。
解决方法一就是修改mysql的配置文件,让其空闭的时候更多。
inux下打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000
windows下打开my.ini,增加:
interactive_timeout=28800000
wait_timeout=28800000
我们这样就可以把空闭的时间设置到更大
解决方法二,我们就是把数据库连接方法改为C3po连接池连接,我们推荐用这种方法去连接数据库,因为它会自动去检测是否断开,如果断开就重新连接,好处比较多,稳定性高。
下面就是hibernate连接c3po的方法
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">sz886</property>
<property name="hibernate.connection.url">jdbc:mysql:///sz886</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider </property>
<property name="c3p0.min_size">86</property>
<property name="c3p0.max_size">886</property>
<property name="c3p0.timeout">120</property>-->
<property name="c3p0.idle_test_period">3000</property>
</session-factory>
</hibernate-configuration>
如有不懂,联系
独占网络(
http://www.sz886.com)