Въведение в хибернационната архитектура

Преди да навлезем в хибернативната архитектура, нека да разгледаме защо Хибернацията влезе в картината и каква цел решава за нас. Hibernate е инструмент за ORM (Object Relational Mapping) за езика за програмиране на Java за разработване на обект-базирана база данни, независима от постоянната логика. Hibernate осигурява слой на абстракция за извличане и съхраняване на данни в база данни.

Защо хибернация?

JDBC (Java Database Connectivity) зависи от базата данни. За да бъдем по-конкретни, писането на заявки, които да се стартират от приложението ви с помощта на JDBC, зависи от това с каква база данни работите. Ако работите с MySQL или Oracle, вашите заявки ще бъдат различни. Така че, ако в средата на проекта трябва да промените вашата база данни, която също ще изисква промяна на кода, и разбира се, ние не искаме това. Докато хибернацията използва независим от базата данни Hibernate Query Language. Накратко, хибернацията се грижи за повечето от това, което трябваше да направи разработчикът с JDBC, например. Отваряне на връзка с DB, затваряне на връзки, обработка на различни изключения.

Така че нека да влезем в хибернативната архитектура, за да разберем по-добре как Hibernate е направил запазването на данните толкова по-лесно.

Хибернална архитектура

Основната концепция, която е всеки ORM, е да замени писането на специфични SQL заявки за бази данни с манипулиране на обекти.

Казано с прости думи,

  • създавате POJO (Обикновен стар Java обект)
  • задайте стойности на полетата, използвайки сетери
  • кажете на хибернация да продължава тези обекти

Хибернацията картографира класовете на Java в таблиците с бази данни (което включва също и картографиране на типовете данни на Java към SQL типове данни).

Така че отнема болката от преобразуването на полетата Java в типове данни, поддържани от SQL. Хибернацията го прави вместо вас.

Освен това освобождава разработчика от болката при обработката на резултатите.

Java приложение

Докато развиваме логиката за постоянство, ние трябва да вземем подкрепата на някои ресурси в приложението java. Нека да разгледаме тези ресурси.

Сърцето на всяко приложение за хибернация се крие в неговата конфигурация, която се извършва с помощта на,

  • Конфигурационен файл
  • Картографиране на файл

Файл за конфигурация на хибернация

Ние дефинираме свойствата, които показват хибернация с каква база данни трябва да взаимодейства и с кой драйвер на JDBC да използва. Hibernate използва конфигурационен файл, за да получи цялата тази информация.

Въпреки че Hibernate е способен да генерира заявки към база данни, можем да определим диалекта, за да му помогнем да генерира по-добър SQL за необходимата база данни.

Например, по-долу са свойствата, които обикновено задавате в приложение за пролетно зареждане

Файл за хибернация

Той съдържа всички дефиниции за картографиране от клас към таблица. Всеки ORM инструмент се нуждае от файл за картографиране. Използваме следните начини да кажем на хибернация каква стойност на обект трябва да се съхранява в коя колона на таблицата.

  • XML
  • анотации

Синтаксис на xml файл за картографиране през пролетта,

По-долу е как да анотираме променливата на инстанцията, която трябва да бъде картографирана в колона от ред в базата данни.

Домен клас

Както знаем, Hibernate е известен с развитието на логика за постоянство, основаваща се на обекти. Така клас на домейн е POJO, който е картографиран в таблица в базата данни.

Конфигурация

За да създаде връзка с базата данни, Hibernate трябва да знае подробностите на базата данни, класовете и други подробности. Обект за конфигурация се създава веднъж, когато се инициализира приложение. Той е отговорен главно за зареждане с хибернация към приложението. Обект за конфигурация използва конфигурационния файл и хибернационния картографиращ файл, за да извърши следните стъпки:

  • Заредете тези файлове.
  • Проверява дали тези файлове са добре оформени и валидни.
  • Създава метаданни в паметта на тези два файла.
  • Върнете обект, който съдържа тези метаданни.

Сесия Фабрика

Фабрика за сесии се използва за създаване на обекти на сесията. Създава се от обекта за конфигуриране. Той осигурява слой на абстракция, така че не е нужно да се притесняваме как се създава обектът на сесията. Това е безопасен за нишки световен фабричен клас за създаване на сесии. С помощта на обекта за конфигуриране получаваме достъп до данните в паметта, създадени от файла за конфигурация и картографиране.

Оттам получава JDBC свойства - име на драйвер, URL на източника на данни, потребителско име, парола и др. Използвайки тези свойства, той ще създава обекти за връзка, представящи свързаност с базата данни.

С помощта на тези връзки се създава пул за връзка. Цялата информация от конфигурационния обект и пула за връзка се използва за създаване и връщане на обект на сесия. Следователно, фабричният обект на сесията е обект с тежка категория. Всяка фабрика на сесията е конфигурирана да работи с конкретна база данни, използвайки един от посочените диалекти на хибернация.

Сесия

Едно нещо, което трябва да се отбележи, е, че не е свързано със сървлет сесия или java сесия. Сесията е шлюз към нашата база данни. Той създава мост от нашето приложение към базата данни. Той е създаден от фабриката за сесии. Той взема обекта за връзка и отваря връзка / сесия към базата данни и позволява на приложението да извършва постоянни операции върху базата данни.

В инструмент ORM вие извършвате всички операции като INSERT, DELETE и UPDATE, използвайки обектно-ориентирана семантика, което означава, че вече не се позовавате на таблици, редове и колони. Работата на сесиите е да извършите всички постоянни операции вместо вас.

транзакция

Транзакция е краткотраен обект, който представлява една единица работа като запазване или изтриване на обект в таблица в базата данни. Тя абстрахира приложението от основната транзакция, извършена чрез използване на JDBC, JTA (Java Transaction API) и т.н.

Вътре в хибернация, използвайки JDBC, JTA, JNDI (Java Naming и Directory Interface) за генериране на SQL заявки за конфигурираната база данни.

заключение

В тази статия разгледахме как многопластовата архитектура на хибернацията помага на програмист да работи с база данни, без да се налага да знае подробности за базовия API като JDBC, JTA и JNDI. Научихме как Hibernate улеснява живота ни, боравейки с повечето от кодовия код като отваряне / затваряне на връзка с базата данни. Да се ​​надяваме, че това ви дава ясно разбиране за архитектурата на хибернацията, която ще започне да използвате Hibernate Framework във вашите приложения.

Препоръчителни статии

Това е ръководство за хибернационна архитектура. Тук обсъждаме слоестата архитектура на хибернацията заедно с Java приложението. Можете също да разгледате следната статия, за да научите повече -

  1. Какво е хибернация?
  2. Рамка за хибернация
  3. Хибернални въпроси за интервю
  4. Какво е Java в хибернация?