Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java EE 综合讨论区 » Hibernate  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 求助Statement, ResultSet 递归!!!
fengshaojian





发贴: 3
积分: 0
于 2008-11-08 12:41 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
求助:这种递归会不会造成打开的资源(conn,stmt,rs)不能关闭?

public static void deleteCategory(int id, int pid) {
    Connection conn = null;
    Statement stmtFindChild = null;
    Statement stmtDel = null;
    conn = DB.getConn();
    stmtFindChild = DB.getStmt(conn);
    stmtDel = DB.getStmt(conn);
    String sql = "delete from category where id = "+id;
    String sqlFindChild = "select * from category where pid = "+id;
    
    ResultSet rs = DB.getRs(stmtFindChild, sqlFindChild);
    try{
      while(rs.next()){
        deleteCategory(rs.getInt("id"),rs.getInt("pid"));
      }
      {
      DB.executeUpdate(stmtDel, sql);
      conn.close();
      stmtDel.close();
      stmtFindChild.close();
      rs.close();
      }
    }catch(SQLException e){
      e.printStackTrace();
    }finally{
      try{
        if(conn!=null){
        
        }
        if(stmtDel!=null){
          stmtDel.close();
        }
        if(stmtFindChild!=null){
          stmtFindChild.close();
        }
        if(rs!=null){
         rs.close();
        }    
      }catch(SQLException e){
        e.printStackTrace();
      }
    }
  }



作者 Re:求助Statement, ResultSet 递归!!! [Re:fengshaojian]
micsolaris





发贴: 36
积分: 5
于 2008-11-16 23:58 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
deleteCategory(id,pid);
中调用了deleteCategory(id,pid);
除非是rs.next()调用本身是 false。不然你这些代码会不断循环,永远不能到达con.close()。



作者 Re:求助Statement, ResultSet 递归!!! [Re:fengshaojian]
nihaolaogao





发贴: 8
积分: 0
于 2008-11-18 19:22 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
比如你传一个0,1
当rs.next()为真,说明条件成立.读一条记录,再调用deleteCategory(id,pid);应
该还是0,1吧.所以它是不是出来的.



作者 Re:求助Statement, ResultSet 递归!!! [Re:fengshaojian]
fengshaojian





发贴: 3
积分: 0
于 2008-11-19 00:36 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
恩,是的,rs.next()最终是为false。

我这是个循环递归调用,所以每次递归都打开了rs,stmt等资源,
我困惑的是我打开的这稀资源最后能不能都关闭,会不会造成打开的资源不能关闭?




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923