我正在使用MySQL
和Java
,試圖製作shoppingcartDB,並試圖刪除已經過了30天訂單的元組。SQLException:ResultSet關閉後不允許操作
但是編譯器說:
異常線程 「main」 值java.sql.SQLException:操作不後?我怎樣才能解決這個問題允許的ResultSet關閉
代碼:
public static void checkBasketdate() throws Exception {
//Connect to MySQL:
Connection con = makeConnection();
Statement stmt = con.createStatement();
ResultSet rs1 = stmt.executeQuery("SELECT * FROM basket ;");
while (rs1.next()) {
Date Odate = rs1.getDate("orderdate");
long diff = datediffOfDate(Odate);
System.out.println(Odate);
if (diff > 30) {
//This is where the Exception is thrown:
stmt.executeUpdate("DELETE FROM basket WHERE orderdate = '" + Odate + "';");
System.out.println("=>orderdate has been passed 30 days, so delete it");
}
}
}
其中拋出異常的代碼行是:
stmt.executeUpdate( 「DELETE FROM籃WHERE訂購日期= '」 +大館+ 「';」) ;
可能重複[如何避免ResultSet是在Java中的關閉異常?](http://stackoverflow.com/questions/935511/how-cani-i- avoid-resultset-is-closed-exception-in-java) – px06
值得注意的是'rs1.next()'會關閉連接如果它無法找到ResultSet中返回的任何內容。你應該檢查你的數據庫,看看裏面是否有數據。 – px06