Вопрос проверяет понимание низкоуровневой работы с JDBC и тем, откуда берутся данные в ORM.
ResultSet — это объект JDBC, содержащий результат выполнения SQL-запроса. Он представляет данные в виде набора строк. По ResultSet можно последовательно перемещаться и читать значения колонок. ORM и JdbcTemplate используют ResultSet внутри себя. Обычно разработчик напрямую с ним не работает.
ResultSet — это базовое понятие JDBC, которое лежит в основе всех способов чтения данных из реляционной базы.
ResultSet — это объект JDBC, представляющий результат выполнения SQL-запроса в виде курсора по строкам результата.
После выполнения SQL-запроса база данных возвращает данные, которые JDBC оборачивает в ResultSet.
Курсор
указывает на текущую строку
по умолчанию находится перед первой строкой
Последовательный доступ
обычно читается строка за строкой
next() перемещает курсор
Доступ к колонкам
по имени колонки
по индексу
ResultSet rs = statement.executeQuery("select id, name from users");
while (rs.next()) {
long id = rs.getLong("id");
String name = rs.getString("name");
// обработка данных
}
JdbcTemplate использует ResultSet внутри
Hibernate маппит ResultSet в сущности
Разработчик редко работает с ним напрямую
ResultSet — это фундаментальный механизм JDBC для получения данных, скрытый за более высокоуровневыми абстракциями Spring и ORM.