public void delete(ConnectDataUtility cdu,int id, boolean isLeaf) {

if(isLeaf){
PreparedStatement ps =null;
ResultSet rs = null;
String sql = "select * from copybook where pid="+id;

try {
ps=cdu.getConn().prepareStatement(sql);
rs = ps.executeQuery();

while(rs.next()){
deleteTZ(cdu,rs.getInt("id"),rs.getInt("isleaf")==1);
}

} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
                  PreparedStatement ps_delete =null;
String sql_d = "delete from copybook where id="+id;
try {
ps_delete = cdu.getConn().prepareStatement(sql_d);
ps_delete.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}ConnectDataUtility cdu是我专门连接数据库的对象,id是帖子的id,isleaf是否是叶子节点,如果非叶子节点,执行if里面的语句,根据删除帖子的id找到全部的子帖,pid这里是指帖子的父id,因为删除一个帖子就要连跟他的帖子也要全部删除,他的帖子有可能跟有其他帖子,这些帖子就是子帖!如果是叶子节点,直接把自己删除掉这里是一个递归删除它的全部子帖,最后删除自己
问题删除的时候,会报一个异常java.sql.SQLException: Operation not allowed after ResultSet closed
我关闭了rs.close(),为什么还要报出异常呢?而且是在finally里面报错行数是在 while(rs.next()){ 这里