我正在使用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