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.ykfic.cn)