Spring Data JDBC
Работа с реляционной базой без тяжёлого ORM
Spring Data JDBC помогает хранить Java-объекты в реляционной базе данных, не заставляя каждый раз вручную писать типичный код доступа к данным. Он даёт репозитории, маппинг сущностей, поддержку запросов и другие привычные возможности Spring Data, но сохраняет модель работы заметно ближе к SQL и JDBC, чем полноценный ORM.
В этом разделе мы сосредоточимся на том, как описать данные приложения, сохранить и прочитать их через репозиторий, написать нужные запросы и правильно моделировать связанные данные как агрегаты. SQL и структура таблиц при этом остаются важной частью понимания приложения.
Что будет внутри раздела
- Основы Spring Data JDBC. Разберём общую модель работы библиотеки и место, которое она занимает между обычным JDBC-кодом и более сложными средствами хранения данных.
- Repositories. Увидим, как Spring создаёт реализацию интерфейса репозитория и отделяет доступ к данным от остального приложения.
- CrudRepository. Познакомимся с готовыми операциями сохранения, поиска, проверки существования и удаления сущностей.
- Маппинг сущностей. Свяжем Java-класс с таблицей, идентификатором и столбцами базы данных.
- Запросы. Научимся получать данные через методы репозитория, имя которых описывает условие выборки.
- Пользовательские запросы. Перейдём к явному SQL там, где имени метода уже недостаточно.
- Связи и агрегаты. Разберём, как Spring Data JDBC смотрит на связанные объекты и где проходят границы сохраняемого целого.
- Auditing. Добавим автоматическое заполнение времени создания и изменения данных.
Темы идут от простого репозитория к модели данных и более точному контролю над SQL. После раздела будет понятно, как построить небольшой слой доступа к реляционной базе на Spring Data JDBC и при этом не потерять связь между Java-кодом и реальной схемой таблиц.