JdbcTemplate.query(...) владеет фиксированным скелетом алгоритма — получение соединения, подготовка и выполнение оператора, итерация ResultSet, преобразование исключений и закрытие каждого ресурса даже в случае сбоя — в то время как вызывающая сторона предоставляет только изменяющийся шаг, обратный вызов RowMapper, который превращает одну строку в объект.
Пример
publicListfindOrdersByStatus(String status) {
return jdbcTemplate.query(
"SELECT id, customer_id, status FROM orders WHERE status = ?",
(rs, rowNum) -> newOrder(rs.getLong("id"), rs.getString("customer_id"), rs.getString("status")),
status
);
}
Итог
JdbcTemplate.query(...) владеет фиксированным скелетом алгоритма — получение соединения, подготовка и выполнение оператора, итерация ResultSet, преобразование исключений и закрытие каждого ресурса даже в случае сбоя — в то время как вызывающая сторона предоставляет только изменяющийся шаг, `RowMapp
Как `JdbcTemplate` демонстрирует шаблон метода шаблона? · Sobeso