Java
과 MySQL
을 사용하여 shoppingcartDB를 만들려고하는데 주문 후 30 일이 지난 튜플을 삭제하려고합니다.SQLException : 결과 집합을 닫은 후에 작업을 수행 할 수 없습니다.
는 그러나 컴파일러는 말한다 : 스레드에서
예외 "기본"은 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 ("바구니에서 삭제 WHERE 주문일 = '"+오다 + ""; ") ;
는 한 순간에 실행 한 문장을 가질 수
의 사용 가능한 복제 [자바에서 폐쇄 예외가 나는 결과 집합 피할 수 있는가? (http://stackoverflow.com/questions/935511/how-can-i- avoid-resultset-is-closed-in-java) – px06
'rs1.next()'가 connectio를 닫을 것임을 주목할 가치가있다. ResultSet에서 반환 된 것을 찾을 수 없다면 n. DB를 확인하고 데이터가 있는지 확인해야합니다. – px06