Множественные результаты SQL запроса Java

Множественные результаты SQL запроса JavaЗапрос может вернуть множественные результаты. Это может произойти при выполнении хранимой процедуры или в базах данных, которые позволяют также выполнение множества операторов SELECT в одном запросе. Ниже показано, как можно получить все множественные наборы:

  1. Используйте метод execute для выполнения оператора SQL.
  2. Получите первый результат или обновите подсчет.
  3. Повторите вызов метода getMoreResults(), чтобы перейти к следующему результирующему набору. Этот метод автоматически закрывает предыдущий результирующий набор.
  4. Процедура завершается, когда заканчиваются результирующие наборы или обновленные подсчеты.

Методы execute и getMoreResults возвращает значение true, если следующим элементом в соединении является результирующий набор. Метод getUpdateCount возвращает значение -1, если следующим элементом в соединении не является обновление подсчета.

Следующий цикл проходит по всем результатам:

boolean done = false;
boolean isResult = stmt.execute(command);
while(!done)
{
    if(isResult)
    {
        ResultSet result = stmt.getResultSet();
        //      result...
    }
    else
    {
        int updateCount = stmt.getUpdateCount();
        if(updateCount >= 0)
            //     updateCount...
        else
            done = true;
    }
    isResult = stmt.getMoreResults();
}

Кстати, метод boolean getMoreResults() получает следующий результат для следующего оператора. Возвращает значение true, если следующий результат существует, и он является результирующим набором.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *