Назад к вопросам
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. |