Общая архитектура приложения включает в себя несколько уровней, как показано на рисунке ниже:

В обзоре этой структуры, она включает в себя:

  • Уровень представления: веб-браузеры, мобильные приложения, автономные приложения — показывает данные и взаимодействует с пользователем.
  • Уровень бизнес-сервиса, он реализует бизнес-логику. Бизнес-объекты используются бизнес-службой. Они должны быть синхронизированы с уровнем сохраняемости.
  • Уровень доступа к данным обеспечивает синхронизацию между бизнес-объектами и уровнем сохраняемости. Для каждой сущности домена мы должны создать отдельный класс DAO (объект доступа к данным).

Мы хотели бы показать, как писать DAO с помощью Spring.

Роль JDBC заключается в обеспечении единообразного взаимодействия приложения с базой данных. JDBC использует драйверы, по одному для каждой базы данных. Драйверы переводят команды JDBC API в команды системы баз данных.

Может возникнуть вопрос, зачем использовать Spring JDBC, если у нас уже есть ORM? На это есть причины, перечислим некоторые из них:

  • Spring JDBC обеспечивает гибкость; он использует все возможности СУБД.
  • Spring JDBC прозрачен — все под контролем, а ORM сама создает SQL-команды.
  • Spring JDBC обеспечивает более высокую производительность.
  • И последнее, но не менее важное: пока у вас есть контроль, в вашей работе с базой данных не будет никакого волшебства.

В таком случае, почему простого JDBC, как вы его знаете, недостаточно? Также есть несколько причин:

  • Обычный JDBC по-прежнему требует ручной обработки исключений.
  • Обычный JDBC предполагает ручное управление транзакциями.
  • Обычный JDBC не обеспечивает сопоставление данных с объектами.
  • И есть большое количество служебного кода.

Шаблон проектирования DAO включает сопоставление между бизнес-объектом и таблицей базы данных. Можно предположить, что мы начинаем со следующего интерфейса и следующей таблицы базы данных:

Наша цель — сохранить объект Book из памяти в таблицу BOOK из базы данных. Для работы с простым JDBC в таком случае код может выглядеть так:

Взглянув на работу, которую нам нужно выполнить с помощью простого JDBC, мы можем указать на следующую последовательность:

  • Определить параметры подключения
  • Откройте соединение
  • Укажите заявление
  • Подготовить и выполнить заявление
  • Итерация по результатам
  • Выполняйте работу для каждой итерации
  • Обработать любое исключение
  • Обрабатывать транзакции
  • Закрыть соединение

В нашей следующей статье мы рассмотрим, как мы можем сделать это с помощью Spring JDBC.

Хотите улучшить свои навыки программирования Spring? Ознакомьтесь с нашими тренингами: Spring Framework для разработки приложений, Spring Core и Spring Databases.

Первоначально опубликовано на www.luxoft-training.com.