Co to jest Hibernacja?

Oficjalnie znany jako Hibernacja ORM, jest narzędziem lub strukturą mapowania obiektowo-relacyjnego dla języka programowania Java. Jest to wolne oprogramowanie na licencji GNU Lesser General Public License 2.1. Ma on na celu zapewnienie użytkownikowi struktury do obsługi mapowania impedancji obiektowo-relacyjnej. Zarządza także trwałym dostępem do bazy danych za pomocą funkcji obsługi obiektów na bardzo wysokim poziomie. Jest to struktura oprogramowania pośredniego języka Java używana do mapowania relacyjno-obiektowego i do wydajnego utrwalania obiektów.

Architektura

Aby dowiedzieć się więcej o hibernacji, musimy zrozumieć jego architekturę, która obejmuje:

  • Kod aplikacji Java składa się ze wszystkich klas, zmiennych i obiektów, które definiują logikę biznesową aplikacji. Klasy te komunikują się z Hibernacją.
  • Potem pojawia się Hibernacja i jej podstawowe zasady, za pomocą których możemy utrwalać (przechowywać lub zapisywać i odzyskiwać) obiekty naszych klas warstw biznesowych, komunikując się z warstwą serwera bazy danych.
  • Wykorzystuje rdzeń API Java, Java Database Connectivity (JDBC), Java Transaction API (JTA), Java Naming and Directory Interface (JNDI) do komunikacji z bazą danych w celu utrzymania stanu obiektu poprzez wykonanie odczytu, tworzenia, aktualizacji, operacje usuwania (CRUD).

Zasadniczo służy do komunikacji z bazą danych. Tutaj po prostu tworzymy niektóre jednostki, które są niczym innym jak klasą Java, która utworzy dla nas tabelę bazy danych w bazie danych.

Struktura

Tutaj pojawia się pytanie, dlaczego używamy hibernacji frameworku Java, skoro mamy już podstawowe zasady Java. Oto odpowiedź na to pytanie:

  • Zastosowano najlepsze koncepcje JDBC, takie jak:
  1. Zestaw wierszy zamiast ResultSet
  2. DataSource (pula połączeń) zamiast DriverManager
  3. Operacje wsadowe zamiast pojedynczych operacji
  4. PreparedStatement zamiast Statement
  • Koszt opracowania projektu jest zredukowany do dużego czynnika.
  • Brak wycieków pamięci
  • Zarządzanie powiązaniami, takimi jak jeden do wielu itp., Jest proste i łatwe w porównaniu do pracy z właściwościami kolekcji, takimi jak java.util.Set, List, Map.
  • Będąc strukturą ORM, Hibernacja uzyska wszystkie zalety:
  • Obsługuje pamięć podręczną drugiego poziomu
  • Obiekt staje się zapisem i vice versa.
  • Dodatkowo obsługuje Object Query Language (HQL)
  • Obsługuje wiele generatorów kluczy podstawowych

Funkcje Hibernacji

Tak więc chodziło o framework hibernacji java i jego architekturę, porozmawiajmy o funkcjach najnowszej stabilnej wersji hibernacji wydanej 57 dni temu, tj. 23 lutego 2019 r. Opracowana przez oprogramowanie Red Hat, jest to platforma maszyny wirtualnej z wieloma funkcjami:

  • Obsługuje JMX i JCA.
  • Zapewnia funkcję integracji J2EE.
  • Podczas inicjalizacji systemu generuje SQL.
  • Opcjonalnie zapewnij wewnętrzne buforowanie połączeń i przygotowane buforowanie instrukcji.
  • Obsługuje optymistyczne blokowanie dzięki wersjonowaniu.
  • Zapewnia pobieranie sprzężenia zewnętrznego.
  • Wprowadza inicjalizację Lazy.
  • Zapewnia pamięć podręczną na poziomie sesji i opcjonalną pamięć podręczną drugiego poziomu.
  • Zapewnia dwuwarstwową architekturę pamięci podręcznej.
  • Automatyczne generowanie klucza podstawowego.
  • Obsługuje twardą koncepcję kluczy kompozytowych.
  • Obsługuje koncepcję Odłączony obiekt.
  • Wprowadza automatyczną koncepcję Dirty Checking.
  • Zapewnia transparentne zachowanie bez przetwarzania kodu bajtowego.
  • Zapewnia odwzorowania obiektowe / relacyjne. Oto różne strategie mapowania O / R jako mapowania wielu obiektów na jednorzędowe,
  • Powiązania polimorficzne, powiązanie dwukierunkowe, filtrowanie powiązań. Zapewnia także dokumenty mapujące XML.
  • Zapewnia różne zorientowane obiektowo języki zapytań.
  • Minimalny obiektowy język zapytań Hibernacja (HQL), rodzime zapytania SQL
  • Wysoko obiektowa koncepcja kryteriów.

Dlaczego używamy Hibernacji

Tutaj były wszystkie najnowsze funkcje hibernacji. Następnie pojawia się kwestia, dlaczego go używamy, więc oto powody, dla których wolimy używać hibernacji:

  • Zarządzanie transakcjami
  • Wspomnienia
  • Dziedzictwo
  • Hibernacja buforowania
  • Wersjonowanie
  • Funkcjonalność audytu
  • Obsługa adnotacji JPA
  • Pula połączeń
  • Unikanie bloków try-catch
  • Unikaj leniwego ładowania
  • Zmniejsza powtarzanie kodu

Zalety

Omawiając wszystko na temat hibernacji, teraz nadszedł czas, aby omówić główny program, czyli zalety i wady korzystania z hibernacji. Omawiając ten temat, zacznijmy od zalet hibernacji, które są następujące:

  1. ORM - konserwacja jest łatwa i opłacalna.
  2. Przejrzysta trwałość
  3. Niezależna od bazy danych
  4. HQL - zaawansowane funkcje HQL, takie jak paginacja i profilowanie dynamiczne, nie występują w SQL. Możemy więc użyć go w stanie hibernacji.
  5. Buforowanie dwuwarstwowe
  6. Właściwość wersji
  7. Open Source i darmowe oprogramowanie
  8. Skalowalność jest łatwa
  9. Leniwe ładowanie - koncepcja leniwego ładowania pobiera tylko niezbędny obiekt wymagany do wykonania aplikacji.
  10. Łatwe do nauki
  11. Obsługuje również kolekcje takie jak Lista, Zestaw, Mapa.
  12. możliwość generowania kluczy podstawowych
  13. Hibernacja zapewniła klasy dialektu
  14. Obsługuje relacje takie jak One-To-Many, One-To-One, Many-To-Many-to-Many, Many-To-One

Niedogodności

Z zaletami hibernacja ma również bardzo mniej wad. Oto wady hibernacji:

  1. trochę wolniej niż czysty JDBC
  2. problem z kodem płyty grzewczej
  3. generować wiele instrukcji SQL w czasie wykonywania
  4. Hibernacja nie nadaje się do przetwarzania wsadowego
  5. Hibernacja jest powolna, ponieważ wykorzystuje odbicie czasu wykonywania
  6. Wiele API do nauki
  7. Czasami debugowanie i dostrajanie wydajności stają się trudne.
  8. Nie nadaje się do małych projektów
  9. Nie zezwala na wiele wstawek
  10. Generuje złożone zapytania z wieloma połączeniami
  11. Zapytania HQL nie mogą wywoływać programu PL / SQL

Wniosek

Więc biorąc pod uwagę wszystkie te tematy, musimy również wiedzieć o przyszłości hibernacji. Można powiedzieć, że Hibernacja nadal będzie dominującym narzędziem ORM, o ile JPA szybko nadrabia zaległości. Mam wrażenie, że Hibernacja jest najszerzej stosowaną implementacją JPA (przed OpenJPA i EclipseLink), a także, że jej natywny lub podstawowy interfejs API jest nadal potężniejszy niż JPA 2. Z tych samych powodów sądzę, że będzie on dostępny na długo czas. Bardzo zalecane jest używanie Spring MVC w trybie hibernacji, ponieważ jest to najbardziej kompatybilny MVC. Korzystanie ze struktury utrwalania, takiej jak Hibernacja, pozwala programistom skoncentrować się na pisaniu kodu logiki biznesowej zamiast pisania dokładnej i dobrej warstwy trwałości, która obejmuje pisanie zapytań SQL, kodu JDBC, zarządzania połączeniami itp. Więc mogę zasugerować użycie hibernacji jako frameworku Java, ponieważ jest to najbardziej znany framework java używany obecnie.

Polecane artykuły

To był przewodnik po tym, co to jest hibernacja. Tutaj omawiamy architekturę, funkcje, ramy, zalety i wady hibernacji. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Hibernacja - pytania do wywiadu
  2. Co to jest NumPy?
  3. Co to jest Open Cart?
  4. Struts 2 Pytania do wywiadu
  5. Konwencje nazewnictwa Java