将ResultSet移动到第一个

时间:2011-11-07 05:51:12

标签: jsp oracle10g

我有一个结果集obejct作为rs,我使用代码片段来计算行数..

       while(rs.next())
           count++;

我必须再次使用相同的结果集来检索数据。我使用了方法

    rs.beforefirst(); 

但它不起作用......控制没有进入

   while(rs.next()){
      cid=rs.getInt(1);
      taskdate=rs.getString(2);
      tasktime=rs.getString(3);
      addr=rs.getString(4);
   }

我必须根据我的查询返回4行..但它不是???

2 个答案:

答案 0 :(得分:6)

Resultset仅限前锋。如果要导航回第一条记录,则需要创建可滚动结果集

  // Create a scrollable result set
Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = stmt.executeQuery("SELECT * FROM my_table");

// Move cursor forward
while (resultSet.next()) {
  // Get data at cursor
  String s = resultSet.getString(1);
}

// Move cursor backward
while (resultSet.previous()) {
  // Get data at cursor
  String s = resultSet.getString(1);
}

// Move cursor before first record
resultSet.beforeFirst();  //required statement in this case 

答案 1 :(得分:0)