我不知道,只是知道这是一段处理异常的代码吧?
Java学得不好,不好意思哦。谢谢观看!

解决方案 »

  1.   

    如果已经连接了数据库,得到了connection,并且定义了statement 和resultset 就应该没问题
      

  2.   

    可是在finally块中,我将记录集关闭,这是否会将传出去的记录集也关闭了。
      

  3.   

    原因在于,try{}catch{}finally{}这种结构里,无论在什么情况下都是要执行finally{}中的代码的,而你的程序在finally{}代码段中是将记录集进行关闭了
      

  4.   

    那么这段代码是先return还是先关闭呢。
      

  5.   

    绝对要出问题。
    因为rs返回的时候已经关闭了。你可以用cachedrowset来做这样的事情(它是短开了的数据绩),它扩展了rowset这个借口
    用法和他一样import sun.jdbc.rowset.CachedRowSet;  public CachedRowSet executeQuery(String sql) throws java.sql.SQLException {
        CachedRowSet cst = new CachedRowSet();
        try {
          conn = db.getConnection();
          ps = conn.createStatement();
          rs = ps.executeQuery(sql);
          cst.populate(rs);
          rs.close();
        }
        catch (SQLException e) {
          System.out.println(e.getMessage());
        }
        finally {
          db.CleanConnection(conn, ps, rs);
        }
        return cst;
      }