ResultSet和Result的区别与联系

来源:互联网 发布:2016年非农历史数据 编辑:程序博客网 时间:2024/06/05 17:36
二者的区别在于前者对于修改不敏感,而后者对于修改敏感
resultSetConcurency是设置ResultSet对象能够修改的,取值如下:
ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。
ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。

以下两种方法的共性:返回可滚动的结果集,当数据库变化时,当前结果集同步改变。
不可用结果集更新数据库:
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
可用结果集直接更新数据库:
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATETABLE);
result的使用:

public Result executeQuery() throws SQLException {
        Result result = null;
        ResultSet rs = null;
        PreparedStatement pstmt = null;
        Statement stmt = null;
        try {
            if (values != null && values.size() > 0) {
                // Use a PreparedStatement and set all values
                pstmt = conn.prepareStatement(sqlValue);   //SQL语句
                setValues(pstmt, values);             //为参数赋值,是一个数组
                rs = pstmt.executeQuery();
            }
            else {
                // Use a regular Statement
                stmt = conn.createStatement();
                rs = stmt.executeQuery(sqlValue);
            }
            result = ResultSupport.toResult(rs);
        }finally {
            if (rs != null) {
                try {rs.close();} catch (SQLException e) {}
            }
            if (stmt != null) {
                try {stmt.close();} catch (SQLException e) {}
            }
            if (pstmt != null) {
                try {pstmt.close();} catch (SQLException e) {}
            }
        }
        return result;
    }

      

下面是遍列Result的代码

 

      Result result = sqlCommandBean.executeQuery();
  if (result == null || result.getRowCount() == 0) {
   // Book not found
       System.out.println("没有结果!!!");
      } else {
   System.out.println("有" + result.getRowCount() + "条记录!!!");
       for(int i=0;i<result.getRowCount();i++)

      {

            Map map=result.getRows()[i];               //每次循环定位到一条记录

             System.out.println(map.get("字段1")+"     "+map.get("字段2"));

      }
  }