j2se----ResultSet自动关闭


在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。
你的delRecord方法里,rs开始由executeQuery得到,然后在while循环内,又执行了executeUpdate,所以rs被关闭,在执行rs.isAfterLast()时出现异常。。
   rs=sql.executeQuery("select * from message");
   while(rs.next()){
    if(this.number.equals(rs.getString(1).trim()))
     {
      sql.executeUpdate("delete from message where number='"+this.number+"'");
      break;
     }
   } 

你可能感兴趣的:(sql,J2SE)