Общая архитектура приложения включает в себя несколько уровней, как показано на рисунке ниже:
В обзоре этой структуры, она включает в себя:
- Уровень представления: веб-браузеры, мобильные приложения, автономные приложения — показывает данные и взаимодействует с пользователем.
- Уровень бизнес-сервиса, он реализует бизнес-логику. Бизнес-объекты используются бизнес-службой. Они должны быть синхронизированы с уровнем сохраняемости.
- Уровень доступа к данным обеспечивает синхронизацию между бизнес-объектами и уровнем сохраняемости. Для каждой сущности домена мы должны создать отдельный класс 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.