Назад к вопросам
Junior
70
questionbank

Что такое ResultSet в Java?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Интерфейс java.sql.ResultSet представляет собой таблицу данных, полученную в результате выполнения SQL-запроса. Он предоставляет методы для навигации по строкам таблицы и получения значений отдельных столбцов текущей строки по имени столбца или индексу.

Ключевые характеристики:

  • Навигация: Поддерживает перемещение по строкам результата (вперед, назад, пропуск и т.д., в зависимости от типа курсора).
  • Доступ к данным: Позволяет извлекать данные различных типов (строки, числа, даты, BLOB/CLOB и др.) из столбцов.
  • Управление ресурсами: Требует закрытия (close()) для освобождения ресурсов базы данных.
  • Типы: Могут быть прокручиваемыми (scrollable) и/или обновляемыми (updatable), что определяется при создании Statement.

Основной цикл обработки ResultSet:

// Пример получения ResultSet
try (Statement stmt = connection.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT id, name FROM users")) {

    while (rs.next()) { // Перемещаемся к следующей строке
        int id = rs.getInt("id"); // Получаем значение по имени столбца
        String name = rs.getString(2); // Получаем значение по индексу столбца (индекс начинается с 1)

        System.out.println("ID: " + id + ", Name: " + name);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

Типы курсоров:

Тип Свойства
TYPE_FORWARD_ONLY Только перемещение вперед.
TYPE_SCROLL_INSENSITIVE Перемещение вперед/назад, не чувствителен к изменениям в БД после получения ResultSet.
TYPE_SCROLL_SENSITIVE Перемещение вперед/назад, чувствителен к изменениям в БД после получения ResultSet.

Режимы обновления:

Режим Свойства
CONCUR_READ_ONLY Только для чтения, нельзя изменять данные.
CONCUR_UPDATABLE Можно изменять данные через ResultSet.