Перемещение результирующего набора на первое

#jsp #oracle10g

#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 строки в соответствии с моим запросом.. но это не так???

Ответ №1:

Результирующий набор предназначен только для пересылки. Если вы хотите вернуться к первой записи, вам нужно создать прокручиваемый результирующий набор .

   // 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 
  

Ответ №2: