2. 下面的用法可以吗?public  ResultSet executeQuery(String sql)
    {        try
        {
            conn=getConnection();
            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
            rs = stmt.executeQuery(sql);
        }
        catch(SQLException ex)
        {
            System.err.println("ERRO: " + ex.getMessage());
        }
        finally
        {
            try
            {
              conn.close();//在这里关闭连接
            }
            catch(SQLException ex)
            {
               System.err.println("ERRO: " + ex.getMessage());
            }        }
        return rs;//返回
     }

解决方案 »

  1.   

    rs是保存在服务器端啊,当然要close().
      

  2.   

    1、resultset在服务器端,关闭顺讯resultset、statement、connect
    2、应该用完就关闭,否则有可能导致下次在连接数据库取数据错误
    3、没这样(request.setAttibute("result",rs))用过,可以把resultset的值取出放到一个序列化的结构里面,进行传递
      

  3.   

    楼上好像说的不对吧,关闭的顺序是 ResultSet-->Statement-->conn.你关闭了"conn.close();//在这里关闭连接",ResultSet,Statement都会被关掉的.楼主可以获取到结果集之后,保存到一个对象中,然后再返回!(这样可以保证数据库的安全关闭.)
      

  4.   

    sorry,我说的楼上是:wbw88((风一样的男人)),对不起zwxu(zwxu),没想到你们回帖这么快!
      

  5.   

    1,ResultSet应该是在服务器端,
    2,应该都关,
    3,在当前页面中request.setAttibute("result",rs),可以在提交后的页面中得到rs,但仅在这个提交后的页面中可以得到。除非放在session中,以后的页面都可以得到,当然这样就驻留在客户端的session中了。