2011-11-07 29 views
0

我有一个结果作为obejct RS和我使用的代码的片段进行计数的行数..移动结果集,以第一

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

和i具有再次使用相同的结果集检索数据。我使用的方法

rs.beforefirst(); 

,但它是不工作...控制不进入

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

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

回答

5

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