Wprowadzenie do architektury hibernacji

Zanim przejdziemy do architektury hibernacji, spójrzmy, dlaczego Hibernacja pojawiła się na zdjęciu i jaki cel dla nas rozwiązuje. Hibernacja to narzędzie ORM (Object Relational Mapping) dla języka programowania Java do rozwijania opartej na obiektach logiki trwałości niezależnej od bazy danych. Hibernacja zapewnia warstwę abstrakcji do pobierania i przechowywania danych w bazie danych.

Dlaczego Hibernacja?

JDBC (Java Database Connectivity) jest zależny od bazy danych. Mówiąc dokładniej, pisanie zapytań uruchamianych z aplikacji za pomocą JDBC zależy od bazy danych, z którą pracujesz. Jeśli pracujesz z MySQL lub Oracle, twoje zapytania będą inne. Więc jeśli w trakcie projektu musisz zmienić bazę danych, która będzie wymagać również zmiany kodu, i oczywiście nie chcemy tego. Natomiast hibernacja używa niezależnego od bazy danych języka zapytań Hibernacja. Krótko mówiąc, hibernacja zajmuje się większością tego, co deweloper miał do czynienia z JDBC, np. Otwieranie połączenia z bazą danych, zamykanie połączeń, obsługa różnych wyjątków.

Przejdźmy więc do architektury hibernacji, aby lepiej zrozumieć, w jaki sposób hibernacja znacznie utrudnia utrwalanie danych.

Architektura hibernacji

Główną koncepcją każdego ORM jest zastąpienie pisania zapytań SQL specyficznych dla bazy danych manipulowaniem obiektami.

Krótko mówiąc,

  • tworzysz POJO (Plain Old Java Object)
  • przypisz wartości do pól za pomocą ustawiaczy
  • powiedz hibernacji, aby przetrwała te obiekty

Hibernacja odwzorowuje klasy Java na tabele bazy danych (co obejmuje również mapowanie typów danych Java na typy danych SQL).

Więc eliminuje to problem konwersji pól Java na typy danych obsługiwane przez SQL. Hibernacja robi to za Ciebie.

Uwalnia również programistę od bólu związanego z obsługą zestawu wyników.

Aplikacja Java

Opracowując logikę trwałości, musimy skorzystać z obsługi niektórych zasobów w aplikacji Java. Spójrzmy na te zasoby.

Sercem każdej aplikacji Hibernacja jest jej konfiguracja, która odbywa się za pomocą,

  • Plik konfiguracyjny
  • Plik mapowania

Plik konfiguracji hibernacji

Definiujemy właściwości, które informują hibernację, z jaką bazą danych ma współdziałać i jakiego sterownika JDBC użyć. Hibernacja używa pliku konfiguracyjnego, aby uzyskać wszystkie te informacje.

Chociaż Hibernacja jest w stanie generować zapytania do bazy danych, możemy określić dialekt, aby pomóc mu wygenerować lepszy SQL dla wymaganej bazy danych.

Na przykład poniżej są właściwości, które zwykle ustawiasz w aplikacji rozruchu wiosennego

Hibernacja Plik odwzorowania

Zawiera wszystkie definicje mapowania klas na tabele. Każde narzędzie ORM potrzebuje pliku mapowania. Używamy następujących sposobów, aby powiedzieć Hibernacji, jaką wartość obiektu należy zapisać w której kolumnie tabeli.

  • XML
  • Adnotacje

Składnia pliku odwzorowania XML na wiosnę,

Poniżej znajduje się opis adnotacji zmiennej instancji, która powinna być odwzorowana na kolumnę wiersza w bazie danych.

Klasa domeny

Jak wiemy Hibernacja jest znana z opracowywania obiektowej logiki trwałości. Zatem klasa domeny to POJO, który jest odwzorowany na tabelę w bazie danych.

Konfiguracja

Aby utworzyć połączenie z bazą danych, Hibernacja musi znać szczegóły bazy danych, klasy i inne szczegóły. Obiekt konfiguracji jest tworzony raz podczas inicjalizacji aplikacji. Jest głównie odpowiedzialny za bootowanie Hibernacji do aplikacji. Obiekt konfiguracyjny korzysta z pliku konfiguracyjnego i pliku odwzorowania hibernacji, aby wykonać następujące kroki:

  • Załaduj te pliki.
  • Sprawdza, czy te pliki są poprawnie sformułowane i prawidłowe.
  • Tworzy metadane w pamięci tych dwóch plików.
  • Zwraca obiekt zawierający te metadane.

Fabryka Sesji

Fabryka sesji służy do tworzenia obiektów sesji. Jest tworzony przez obiekt konfiguracji. Zapewnia warstwę abstrakcji, więc nie musimy się martwić, w jaki sposób tworzony jest obiekt sesji. Jest to bezpieczna dla wątków globalna klasa fabryczna do tworzenia sesji. Za pomocą obiektu konfiguracyjnego uzyskujemy dostęp do danych w pamięci utworzonych z pliku konfiguracyjnego i mapowania.

Stamtąd pobiera właściwości JDBC - nazwę sterownika, adres URL źródła danych, nazwę użytkownika, hasło itp. Korzystając z tych właściwości, tworzy obiekty połączeń reprezentujące łączność z bazą danych.

Za pomocą tych połączeń tworzona jest pula połączeń. Wszystkie informacje z obiektu konfiguracji i puli połączeń są używane do tworzenia i zwracania obiektu sesji. Dlatego obiekt fabryki sesji jest obiektem ciężkim. Każda fabryka sesji jest skonfigurowana do pracy z określoną bazą danych przy użyciu jednego z określonych dialektów hibernacji.

Sesja

Należy zauważyć, że nie jest to związane z sesją serwletu ani sesją poczty Java. Sesja jest bramą do naszej bazy danych. Tworzy pomost między naszą aplikacją a bazą danych. Tworzy go fabryka sesji. Pobiera obiekt połączenia i otwiera połączenie / sesję z bazą danych i pozwala aplikacji na wykonywanie operacji trwałości w bazie danych.

W narzędziu ORM wykonujesz wszystkie operacje, takie jak INSERT, DELETE i UPDATE, stosując semantykę obiektową, co oznacza, że ​​nie odwołujesz się już do tabel, wierszy i kolumn. Sesje polegają na wykonaniu wszystkich operacji utrwalania.

Transakcja

Transakcja to krótkotrwały obiekt, który reprezentuje pojedynczą jednostkę pracy, taką jak zapisanie lub usunięcie obiektu w tabeli w bazie danych. Wyodrębnia aplikację z transakcji bazowej wykonanej przy użyciu JDBC, JTA (Java Transaction API) itp.

Wewnętrznie hibernuj przy użyciu JDBC, JTA, JNDI (Java Naming and Directory Interface) do generowania zapytań SQL dla skonfigurowanej bazy danych.

Wniosek

W tym artykule przyjrzeliśmy się, w jaki sposób warstwowa architektura hibernacji pomaga programiście pracować z bazą danych bez konieczności poznawania szczegółów związanych z API, takich jak JDBC, JTA i JNDI. Dowiedzieliśmy się, jak Hibernacja ułatwia nam życie, radząc sobie z większością kodu płyty głównej, np. Otwieranie / zamykanie połączenia z bazą danych. Mamy nadzieję, że pozwoli ci to w pełni zrozumieć architekturę Hibernacji, dzięki której zaczniesz używać Hibernacji Framework w swoich aplikacjach.

Polecane artykuły

Jest to przewodnik po architekturze hibernacji. Tutaj omawiamy architekturę warstwową hibernacji wraz z aplikacją Java. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Co to jest Hibernacja?
  2. Hibernacja Framework
  3. Hibernacja - pytania do wywiadu
  4. Co to jest Java Hibernacja?