Основы Spring Data JDBC

Базовый Spring
≈ 2 мин чтения

Что добавляет Spring Data JDBC

Обычный JDBC даёт полный контроль над SQL, но вместе с ним приходится самостоятельно выполнять много повторяющейся работы: открывать операции чтения и записи, передавать параметры, превращать строки результата в объекты и организовывать типичный CRUD-код. Spring Data JDBC оставляет реляционную модель заметной, но берёт значительную часть этой механики на себя.

Основная единица работы здесь — объект предметной области, который отображается на таблицу. Для него можно объявить интерфейс репозитория, а Spring во время запуска создаст реализацию.

@Table("customers")
class Customer {
    @Id
    Long id;
    String name;
}

interface CustomerRepository extends CrudRepository<Customer, Long> {
}

В этом примере Customer хранится в таблице customers, поле id является идентификатором, а репозиторий получает базовые операции работы с данными. Подробно каждый из этих механизмов разберём дальше.

Почему модель остаётся близкой к базе

Spring Data JDBC не пытается скрыть реляционную базу за сложным графом автоматически отслеживаемых объектов. В приложении по-прежнему важно понимать таблицы, ключи, SQL и границы данных, которые сохраняются вместе. Это делает поведение более прямолинейным: запрос к репозиторию означает реальную работу с базой, а не обращение к долговременно живущему persistence context.

Spring Data JDBC — это не обёртка над классом JdbcTemplate. Он строит более высокий уровень вокруг объектов и репозиториев, хотя в основе работы всё равно лежит реляционная база и SQL.