這是因為mysql默認保持連接8小時。如果連接在8小時內未被訪問,它將被關閉。但是連接池的設計中沒有考慮到這個問題,取出無效連接會導致異常。
解決方案:
1,每隔壹段時間創建壹個線程測試連接,保持連接最新,絕不達到8小時不訪問。
2.當連接池接受連接時,它確定連接是否有效。
【java】?觀平原?復制
如果?(conn.isValid(1000)){?
回歸?conn?
}?
else{?
回歸?這個。create connection();?
}?
3,不用連接池,取了用了就行,再還。
連接池的概念:
使用池來管理連接,這樣可以重用連接。有了池,我們不必自己創建連接,而是通過池獲取連接對象。當連接完成時,調用連接的close()方法並不會真正關閉連接,而是將連接“返回”到池中。該池可以重用這個連接對象。
JDBC數據庫連接池接口(數據源):
Java為數據庫連接池提供了壹個公共接口:javax.sql.DataSource,每個廠商都可以讓自己的連接池實現這個接口。這樣,應用程序可以很容易地切換不同供應商的連接池!