久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Mysql異常No operations allowed after statement closed怎么解決

141次閱讀
沒有評論

共計 1644 個字符,預計需要花費 5 分鐘才能閱讀完成。

本篇內容主要講解“Mysql 異常 No operations allowed after statement closed 怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Mysql 異常 No operations allowed after statement closed 怎么解決”吧!

之所以會出現這個異常,是因為 Mysql 在 5 以后針對超長時間 DB 連接做了一個處理,那就是如果一個 DB 連接在無任何操作情況下過了 8 個小時后,Mysql 會自動把這個連接關閉。所以使用連接池的時候雖然連接對象還在但是鏈接數據庫的時候會一直報這個異常。解決方法很簡單在 Mysql 的官方網站上就可以找到。有兩個方法
### 第一種是在 DB 連接字符串后面加一個參數。
這樣的話,如果當前鏈接因為超時斷掉了,那么驅動程序會自動重新連接數據庫。

jdbc:mysql://localhost:3306/makhtutat?autoReconnect=true

不過 Mysql 并不建議使用這個方法。因為第一個 DB 操作失敗的后,第二 DB 成功前如果出現了重新連接的效果。

conn.createStatement().execute(
  UPDATE checking_account SET balance = balance - 1000.00 WHERE customer= Smith 
conn.createStatement().execute(
  UPDATE savings_account SET balance = balance + 1000.00 WHERE customer= Smith 
conn.commit();

當然如果出現了重新連接,一些用戶變量和臨時表的信息也會丟失。### 另一種方法是 Mysql 推薦的,需要程序員手動處理異常。

 Connection conn = null;
 Statement stmt = null;
 ResultSet rs = null;
 int retryCount = 5;
 boolean transactionCompleted = false;
 do {
 try { conn = getConnection(); // assume getting this from a
 // javax.sql.DataSource, or the
 // java.sql.DriverManager
 conn.setAutoCommit(false);
 retryCount = 0;
 stmt = conn.createStatement();
 String query =  SELECT foo FROM bar ORDER BY baz 
 rs = stmt.executeQuery(query);
 while (rs.next()) { }
 all.close()
 transactionCompleted = true;
 } catch (SQLException sqlEx) { String sqlState = sqlEx.getSQLState();
 //  這個 08S01 就是這個異常的 sql 狀態。單獨處理手動重新鏈接就可以了。 if (08S01 .equals(sqlState) ||  40001 .equals(sqlState)) 
 { 
 retryCount--; 
 } else { 
 retryCount = 0; 
 } 
 } finally { 
 all close: 
 } 
 } while (!transactionCompleted   (retryCount   0));}
}

到此,相信大家對“Mysql 異常 No operations allowed after statement closed 怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計1644字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 广安市| 双流县| 繁峙县| 南岸区| 韶山市| 峨山| 铁岭市| 陆河县| 绥宁县| 岱山县| 东丽区| 策勒县| 灵山县| 柳林县| 论坛| 溧水县| 禄丰县| 隆尧县| 牡丹江市| 陆良县| 浮山县| 苏尼特左旗| 广州市| 潼南县| 花莲县| 三都| 孙吴县| 龙江县| 阿鲁科尔沁旗| 奈曼旗| 贵德县| 镇康县| 武陟县| 仪征市| 昭苏县| 安阳县| 图们市| 库尔勒市| 孝感市| 西藏| 枝江市|