Hibernate имеет многоуровневую архитектуру, которая помогает пользователю работать без знания базовых API. Hibernate использует базу данных и данные конфигурации для предоставления приложениям постоянных сервисов (и постоянных объектов).
Ниже приводится очень высокий уровень представления архитектуры приложений Hibernate.
Ниже приведено подробное представление архитектуры приложений Hibernate с ее важными основными классами.
Hibernate использует различные существующие API Java, такие как JDBC, API транзакций Java (JTA) и интерфейс именования и каталогов Java (JNDI). JDBC обеспечивает элементарный уровень абстракции функциональности, общей для реляционных баз данных, что позволяет Hibernate поддерживать практически любую базу данных с драйвером JDBC. JNDI и JTA позволяют интегрировать Hibernate с серверами приложений J2EE.
В следующем разделе дается краткое описание каждого из объектов класса, участвующих в Hibernate Application Architecture.
Объект конфигурации
Объект конфигурации — это первый объект Hibernate, который вы создаете в любом приложении Hibernate. Обычно создается только один раз во время инициализации приложения. Он представляет файл конфигурации или свойств, требуемый Hibernate.
Объект конфигурации содержит два ключевых компонента:
-
Соединение с базой данных — это обрабатывается через один или несколько файлов конфигурации, поддерживаемых Hibernate. Это файлы hibernate.properties и hibernate.cfg.xml .
-
Настройка отображения классов — этот компонент создает связь между классами Java и таблицами базы данных.
Соединение с базой данных — это обрабатывается через один или несколько файлов конфигурации, поддерживаемых Hibernate. Это файлы hibernate.properties и hibernate.cfg.xml .
Настройка отображения классов — этот компонент создает связь между классами Java и таблицами базы данных.
SessionFactory Object
Объект конфигурации используется для создания объекта SessionFactory, который, в свою очередь, настраивает Hibernate для приложения, используя предоставленный файл конфигурации, и позволяет создавать экземпляр объекта Session. SessionFactory является потокобезопасным объектом и используется всеми потоками приложения.
SessionFactory — это тяжеловесный объект; обычно создается во время запуска приложения и сохраняется для последующего использования. Вам потребуется один объект SessionFactory для каждой базы данных с использованием отдельного файла конфигурации. Итак, если вы используете несколько баз данных, вам придется создать несколько объектов SessionFactory.
Объект сеанса
Сессия используется для получения физического соединения с базой данных. Объект Session является легким и предназначен для реализации каждый раз, когда необходимо взаимодействие с базой данных. Постоянные объекты сохраняются и извлекаются через объект Session.
Объекты сеанса не должны оставаться открытыми в течение длительного времени, потому что они обычно не являются потокобезопасными, и их следует создавать и уничтожать по мере необходимости.
Объект сделки
Транзакция представляет собой единицу работы с базой данных, и большинство СУБД поддерживает функциональность транзакций. Транзакции в Hibernate обрабатываются соответствующим менеджером транзакций и транзакциями (из JDBC или JTA).
Это необязательный объект, и приложения Hibernate могут не использовать этот интерфейс, а вместо этого управлять транзакциями в собственном коде приложения.
Объект запроса
Объекты запросов используют строку SQL или язык запросов Hibernate (HQL) для извлечения данных из базы данных и создания объектов. Экземпляр Query используется для привязки параметров запроса, ограничения количества результатов, возвращаемых запросом, и, наконец, для выполнения запроса.
Критерий Объект
Объекты критериев используются для создания и выполнения объектно-ориентированных запросов критериев для извлечения объектов.