ResultSet,Statement可以都不关闭,只要关闭connection就可以了。嘴保险的,吧connection = null;异常的处理的话,跟普通的没什么区别,如果你做过c++的话,那么这肯定没有问题。对数据库的连接和对内存的申请一样处理的。try......catch........finnaly.....

解决方案 »

  1.   

    还有一个问题:
       当一个页面要显示的数据较多时,如果还没有显示完,当然下面的数据库连接也未来得及关闭,用户就关闭了页面,还进行了再次刷新,用导致连接的上涨,是不是也可以用try......catch........finnaly.....解决??
      

  2.   

    那我想问问是server端生成客户端网页以后再发给客户端还是一边生成一边发呢?
      

  3.   

    在叶面的unload事件里面,清除所有的连接。
      

  4.   

    还有一个问题:
       当一个页面要显示的数据较多时,如果还没有显示完,当然下面的数据库连接也未来得及关闭,用户就关闭了页面,还进行了再次刷新,用导致连接的上涨,是不是也可以用try......catch........finnaly.....解决
    好象不是。
      

  5.   

    建议用try catch finnaly 实现,
    不管是否成功, 在finnaly中最好释放 ResultSet Statement 等
      

  6.   

    在叶面的unload事件里面,清除所有的连接。这样弄,肯定没问题。
      

  7.   

    即使没有完全显示就关闭了页面也可以释放掉连接的,你可以在finally里面System.out.println();就可以知道它最后还是执行finally里面的语句的。
      

  8.   

    我觉得还是应该关闭Statement的,并且是在freeConnection之前关闭掉,这样有利于回收机制。
      

  9.   

    我作了这样一个试验:
        不关闭数据库连接,连续不断的刷新页面,致使数据库连接涨到2000个,内存使用由228M上涨到448M,我在weblogic的控制台设置其连接释放属性,把数据库连接全部释放。但是内存使用还一直停留在448而不下降!!这是为什么???
      

  10.   

    我只知道每个bean里连接数据库后都要关闭conn,Statement和Resultset,具体性能不清楚
      

  11.   

    在用JSP+JAVABEAN开发WEB系统的时候,有一个这样的问题,利用JAVABEAN写了如下一个方法:
    public ResultSet selectTable()
    {
       ResultSet rs= null;
       try
       {
            //连接数据库
        String str_sql="select * from mytable";
            rs=statm.executeQuery(str_sql);
        }
        catch(Exception e)
        {
        }
        return rs;
    }下面是我在JSP页面中调用此方法
    myclassFile myF = new myclassFile();
    ResultSet rs = myF.selectTable();
    while(rs.next())
    {
      .......
    }
    rs.close();请问当关闭记录集时,在JAVABEAN中会不会把数据连接也关闭了,如果不行,怎么样在rs.close()之后关闭数据库连接。谢谢