TO: weipj001(快乐王子)可以啊,但是你在多次循环过程中,可能RS资源没有很好的回收!你在循环中把数据库连接关掉试一下!我以前也出现过这种问题!

解决方案 »

  1.   

    我觉得你应该在所有的循环外面用finally来关闭
      

  2.   

    你已经把pstat关闭了,第二次调用的时候自然报错。
      

  3.   

    weipj001 (快乐王子) 怎样可以测出还有好多RS 没有关闭啊!!我不懂能告诉我吗 》
      

  4.   

    不在循环内关闭,在最外层循环结束后关闭ResultSet不行吗!!!
      

  5.   

    rs5.close();
             rs5=null;
    if(pstat!=null)
    pstat.close();
      

  6.   

    if(rs5.next())
    {
    }
    rs5.close();
    你的这段代码有问题,不管rs5是否有内容,它一定会把rs5做一次close(),如果rs5在查询的时候就没有内容,那么你这个时候来做close()它就会抛出异常的,你在关闭之前应做一个判断,如果rs5不为空的时候就把它关闭,如果为空,可以不管。而且一般我们只要关闭数据库的Connection就可以了,至于PreparedStatement和ResutlSet这些可以不关。
      

  7.   

    to haoshibai
    我用的是oracle,所以用这条语句可以查到相关的连接。
    select user_name, status, osuser, machine, a.sql_text 
    from v$session b, 
    v$open_cursor a 
    where a.sid = b.sid