mysql already closed._java.sql.SQLException: Already closed.
問題:
SEVERE: Error occured while attempting to query data
java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
at org.apache.commons.dbutils.DbUtils.close(DbUtils.java:50)
at org.apache.commons.dbutils.AbstractQueryRunner.close(AbstractQueryRunner.java:409)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:358)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:306)
at com.cmcc.imark.dao.BaseDao.find(BaseDao.java:130)
可能原因:
1.數(shù)據(jù)庫連接時間較長,自動關閉,當再次查詢數(shù)據(jù)時報錯。
2.檢查sql語句是否正確,數(shù)據(jù)庫連接是否正常關閉。
解決方法:
在數(shù)據(jù)源配置文件中新增以下屬性:
true
SELECT 1 FROM DUAL
?其中,
testOnBorrow true :指明是否在從池中取出連接前進行檢驗。如果檢驗失敗,則從池中去除連接并嘗試取出另一個。
validationQuery?: SQL查詢,用來驗證從連接池取出的連接,在將連接返回給調用者之前,如果指定,則查詢必須是一個SQL SELECT并且必須返回至少一行記錄。另外,?dual表是oracle里的,mysql可以直接寫select 1。
?
原文:http://zhen217.iteye.com/blog/2194130
總結
以上是生活随笔為你收集整理的mysql already closed._java.sql.SQLException: Already closed.的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 怎么注销电信、联通、移动手机卡
- 下一篇: 手机百度地图怎么查看卫星图和3D图
