不能关闭,否则将发生错误!
其实可以在jsp页面中定义Statement ,然后传递给Beans,在jsp中最后关掉!

解决方案 »

  1.   

    Beans中:
    private Statement Stmt;
    public void setStmt(Statement inStmt) 
        {
            this.Stmt=inStmt;
        } jsp中:
    Statement stmt = conn.createStatement();
    aBeans.setStmt(stmt);
    ......stmt.close
      

  2.   

    你想干吗?你这样你的rs还要不要了?:P
      

  3.   

    RS是依赖于STMT的,你或者保留STMT传递RS,
    或者将RS以别的方式传递,关闭STMT。
      

  4.   

    stmt.close() 后rs is null
      

  5.   

    所以 别用rs传递查询结果 存在ArrayList或其它什么集合里传嘛
      

  6.   

    呵呵,是这样的:例子中rs的作用域在整个类,而stmt的作用域在方法中,返回后的rs使用完成后,
    还得将stmt关闭,即不得不使用 
    Statement stmt1 = rs.getStatement();
    rs.close();
    stmt1.close();
    感觉这样做在模式上有点别扭.在oracle的demo中这样写到:
        OracleResultSetImpl rs = (OracleResultSetImpl)s.executeQuery ();
        rs.close_statement_on_close = true;
        return rs;
    这里的"close_statement_on_close"起什么作用?
      

  7.   

    snicker(我得意的笑):
    --所以 别用rs传递查询结果 存在ArrayList或其它什么集合里传嘛我原来也采用List保存ResultSet结果集,这样可使代码简洁,及时进行Exception控制(数据导入List后,就可关闭结果集,不需要在表示时在使用结果集)。但是在做性能测试时发现了大问题:
    遍历20000条记录的一个表,结果显示到页面上。直接采用rs用时5秒钟,使用List用时53秒钟,所以决定再不采用List方式。