理解「ResultSet 關閉後不允許操作」例外
在Java 中執行SQL 語句時,正確管理ResultSet 物件至關重要以避免異常。遇到的一個常見例外是「java.sql.SQLException:ResultSet 關閉後不允許操作。」
當 ResultSet 關閉後嘗試執行操作(例如從 ResultSet 取得資料)時,會發生此例外狀況。您提供的程式碼片段說明了這個問題。
異常的根本原因
在您的程式碼中,您建立一個語句物件並使用它來執行兩個查詢:一個取得使用者名,另一個從“設定檔”表中檢索ID。然後,您嘗試使用相同的連接物件建立一個PreparedStatement並準備一個更新語句。
當您在while循環中存取「getStuff()」方法並迭代「profiles」的結果時,就會出現問題表。在此方法中:
此違反了每個 Statement 物件一次只能開啟一個 ResultSet 的要求。因此,「getStuff()」方法中的 ResultSet 與主程式碼中建立的 ResultSet 物件 (rs2) 發生衝突。
解決方案
解決此問題異常,您必須正確管理ResultSet 物件:
此外,您可以考慮為「getStuff()」方法建立一個新的 Statement 對象,以避免與主程式碼中使用的 Statement 物件發生任何潛在的衝突。
以上是為什麼我的 Java 程式碼拋出'java.sql.SQLException:ResultSet 關閉後不允許操作”異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!