Перейти к основному содержимому

5.03. Работа с БД

Разработчику Архитектору

Работа с БД

В Java работа с БД строится на основе следующих основных концепций:

  • JDBC (Java Database Connectivity) – низкоуровневый API, позволяющий подключаться к любым СУБД через JDBC-драйверы;
  • ORM (Object Relational Mapping) – фреймворки, которые связывают объекты Java с таблицами в БД;
  • SQL Frameworks – обёртки над JDBC, упрощающие работу с SQL без полной абстракции ORM;
  • Spring Data / Spring Boot – популярный экосистемный подход к работе с БД в enterprise-приложениях.

JDBC позволяет выполнять SQL-запросы, управлять соединением, извлекать и изменять данные. JDBC включает в себя следующие компоненты:

  • DriverManager — управляет драйверами и соединениями.
  • Connection — устанавливает соединение с БД.
  • Statement / PreparedStatement — выполняют SQL-запросы.
  • ResultSet — содержит результаты выборки.

Процесс работы с БД можно описать универсальным алгоритмом:

  1. Создать или выбрать БД, определить СУБД, таблицы, поля, связи и ограничения.
  2. Добавить JDBC-драйвера (для каждой СУБД соответствующий):
    • MySQL - mysql-connector-java;
    • PostgreSQL - postgresql;
    • SQLite - sqlite-jdbc;
    • Oracle - ojdbc.

В Maven/Gradle это делается через зависимость.

  1. Настроить параметры подключения – указать адрес сервера, имя базы данных, логин, пароль и другие параметры, если требуется. Эти параметры обычно хранятся в конфигурационном файле (application.properties или application.yml), особенно если используется Spring.

  2. Установка подключения к базе данных – нужно открыть соединение с БД, проверить состояние перед началом работы – с помощью DriverManager.getConnection(url, user, password) или пула соединений (например, HikariCP).

  3. Формирование и выполнение запросов – использовать:

    • Statement или PreparedStatement для выполнения SQL-запросов;
    • ResultSet для чтения результатов SELECT;
    • Методы executeUpdate() для INSERT, UPDATE, DELETE.
  4. Обработка результатов – извлечение данных, преобразование их в нужные объекты Java, обработка возможных исключений.

  5. Закрыть ресурсы - ResultSet, Statement, Connection.

Hibernate - один из самых популярных ORM-фреймворков для Java. Он предоставляет мощный набор инструментов для работы с реляционными базами данных.

Hibernate поддерживает JPA (Java Persistence API), автоматическую генерацию SQL-запросов, ленивую загрузку (lazy loading) и кэширование, а также поддержку сложных запросов через HQL (Hibernate Query Language).

Применяется Hibernate в корпоративных приложениях (Spring Framework), проектах с высокими требованиями к производительности и масштабируемости.

JPA - стандартный API для работы с ORM в Java. Hibernate является одной из реализаций JPA. Здесь используется унифицированный подход к работе с БД, и заметна простота использования благодаря аннотациям. Применяется в проектах, где важна совместимость между различными ORM.