Samouczek hibernacji dla początkujących

Opublikowany: 2022-09-26

Hibernate o otwartym kodzie źródłowym to darmowy framework Java OOP używany w aplikacjach internetowych do mapowania obiektowych modeli domen z relacyjnymi bazami danych.

Można używać HQL i SQL do tworzenia zapytań do baz danych i włączania solidnego mapowania obiektowo-relacyjnego. Jednak implementacja mapowania ORM w Javie upraszcza Hibernate, zmniejszając znaczną złożoność aplikacji i jest korzystna dla osób posiadających podstawową wiedzę na temat SQL.

Sprawdź nasze bezpłatne kursy związane z tworzeniem oprogramowania.

Spis treści

Poznaj nasze bezpłatne kursy na temat tworzenia oprogramowania

Podstawy przetwarzania w chmurze Podstawy JavaScript od podstaw Struktury danych i algorytmy
Technologia Blockchain Reaguj dla początkujących Podstawowe podstawy Javy
Jawa Node.js dla początkujących Zaawansowany JavaScript

Architektura hibernacji

Konfiguracja hibernacji jest zwykle przechowywana w sekcji właściwości lub w plikach hibernate.cfg.xml. Szukając konfiguracji Java, szukaj klas oznaczonych adnotacją @Configuration.

Aby rozpocząć pracę z aplikacją Java i bazą danych, zacznij od Session Factory. Obiekt reprezentuje całą kolekcję mapowań między typami Java aplikacji i bazą danych SQL.

Fabryka sesji

Dowolna aplikacja użytkownika może zażądać obiektu sesji, kontaktując się z Session Factory. Session Factory używa informacji konfiguracyjnych zawartych w plikach do tworzenia obiektu sesji. Sesja obejmuje interakcje aplikacji i bazy danych w różnych momentach, co reprezentuje klasa sesji.

Zapytanie

Programy użytkowe mogą wysyłać zapytania do bazy danych o jeden lub więcej przechowywanych elementów przy użyciu języka zapytań. Hibernate oferuje różne podejścia, w tym NamedQuery i Criteria API, do wykonywania zapytań do baz danych.

Pamięć podręczna pierwszego poziomu

Pamięć podręczna wykorzystywana przez obiekt Hibernate Session komunikujący się z bazą danych na pierwszym poziomie nazywana jest pamięcią podręczną pierwszego poziomu, zwaną również pamięcią podręczną sesji. Odpowiada za buforowanie elementów w bieżącej sesji. Każde żądanie z obiektu Session do bazy danych musi przejść przez pamięć podręczną pierwszego poziomu lub pamięć podręczną sesji, zanim dotrze do bazy danych. Dlatego należy zauważyć, że pamięć podręczna pierwszego poziomu pozostaje dostępna z obiektem sesji, dopóki nie przestanie być aktywna.

Transakcje

Transakcje umożliwiają ustalenie spójności danych z możliwością wycofania, jeśli coś pójdzie nie tak.

Obiekty trwałe

Obiekty trwałe to tradycyjne obiekty Java (POJO) zapisane w bazie danych jako wiersze w tabeli połączonej przez framework Hibernate. Pliki konfiguracyjne hibernacji konfigurują te obiekty lub oznacz je adnotacją @Entity.

Pamięć podręczna drugiego poziomu

Pamięć podręczna drugiego poziomu śledzi rzeczy przez kilka sesji. Włącz i zapewnij dostawcy pamięci podręcznej korzystanie z pamięci podręcznej drugiego poziomu. Na przykład EhCache jest popularnym dostawcą pamięci podręcznej drugiego poziomu w wielu aplikacjach.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Poznaj nasze popularne kursy inżynierii oprogramowania

Master of Science in Computer Science z LJMU i IIITB Program certyfikacji cyberbezpieczeństwa Caltech CTME
Pełny Bootcamp rozwoju stosu Program PG w Blockchain
Program Executive PG w pełnym rozwoju stosu
Zobacz wszystkie nasze kursy poniżej
Kursy inżynierii oprogramowania

Kluczowe cechy platformy Hibernate

Hibernate to framework do mapowania obiektów w domenie Java przeznaczony do zarządzania tabelami bazy danych. Framework upraszcza pracę z elementami bazy danych przy użyciu obiektów Java zamiast instrukcji SQL. Ponadto dbanie o zarządzanie transakcjami, zautomatyzowane tworzenie klucza podstawowego, zarządzanie połączeniami z bazą danych i związane z nimi implementacje przyczyniają się do procesu rozwoju.

Standard Java Persistence API (JPA) jest obsługiwany przez dostawcę JPA Hibernate. Jest to zbiór standardów dostępu do danych, ich przechowywania i zarządzania nimi. Można dodatkowo wykorzystać zalety obiektów Java i połączyć je z encjami relacyjnych baz danych, aby zapewnić pełną obsługę JPA.

Wysoka wydajność i skalowalność

Chociaż Hibernate może rozwijać się w każdym środowisku, oferuje szeroki zakres funkcji zwiększających wydajność, takich jak optymistyczne blokowanie, leniwa inicjalizacja i kilka innych technik.

Łatwo nadążyć

Ponieważ Hibernate nie wymaga niestandardowych struktur ani atrybutów bazy danych, zarządzanie nim może być trudne. Tworzy SQL podczas uruchamiania systemu. Jednak w porównaniu z JDBC jest łatwiejszy w utrzymaniu.

Klasy, takie jak AnnotationConfiguration, ServiceRegistryBuilder i inne, zostały szybko wycofane w poprzednich wersjach Hibernate.

Umiejętności tworzenia oprogramowania na żądanie

Kursy JavaScript Podstawowe kursy języka Java Kursy na temat Struktury danych
Kursy Node.js Kursy SQL Kursy rozwoju pełnego stosu
Kursy NFT Kursy DevOps Kursy Big Data
Kursy React.js Kursy na temat bezpieczeństwa cybernetycznego Kursy na temat przetwarzania w chmurze
Kursy projektowania baz danych Kursy Pythona Kursy kryptowalut

Koncepcje bytów, równości i tożsamości

Hibernate oferuje dodatkowe koncepcje porównywania obiektów lub charakterystyk w celu spełnienia precyzyjnych reguł biznesowych. Oprócz wcześniejszej wiedzy na temat sprawdzania równości w jądrze Java, koncepcje Hibernate są równie ważne do mapowania.

1. Mapowanie asocjacji między jednostkami hibernacji

Gdy dwie jednostki są połączone i odnoszą się do nich w sposób jednokierunkowy lub dwukierunkowy, użyj adnotacji JPA, aby opisać klasy java i przekształcić je w stałe jednostki. Przed generowaniem odwołań między jednostkami Hibernate należy jednak najpierw zapoznać się z kilkoma podstawowymi pojęciami.

2. Byt/trwałość to dwie różne rzeczy

Instancja obiektu mapowanego w Hibernate ma jeden z czterech stanów: przejściowy, stały, odłączony lub usunięty, w zależności od danego stanu instancji obiektu.

3. Typy kaskadowe w hibernacji i JPA

Właściwość „CascadeType” jest używana w jednostkach do włączania efektów kaskadowych i odwrotnych. Istnieje kilka rodzajów opcji kaskadowych dostępnych za pośrednictwem CascadeType.

Przeczytaj nasze popularne artykuły związane z tworzeniem oprogramowania

Jak zaimplementować abstrakcję danych w Javie? Co to jest klasa wewnętrzna w Javie? Identyfikatory Java: definicja, składnia i przykłady
Zrozumienie enkapsulacji w OOPS z przykładami Wyjaśnienie argumentów wiersza poleceń w języku C 10 najważniejszych funkcji i cech chmury obliczeniowej w 2022 r.
Polimorfizm w Javie: pojęcia, typy, charakterystyka i przykłady Pakiety w Javie i jak ich używać? Git Tutorial dla początkujących: Naucz się Gita od podstaw

Zalety hibernacji adnotacji w porównaniu z mapowaniem

Przed wbudowanymi adnotacjami jedyną metodą tworzenia mapowań Hibernate były pliki XML. Mimo że różne narzędzia z projektów Hibernate i innych firm umożliwiały automatyczne tworzenie mapowań ze źródła Java, tak się nie stało.

Adnotacje to najbardziej aktualne zdefiniowane mapowania, ale nie najskuteczniejsze.

Oto kilka zalet adnotacji Hibernate (a dokładniej JPA).

Hibernate Query Language [HQL] to język zapytań dla Hibernate

HQL ma podobieństwa z obiektowym językiem zapytań SQL. Jego działanie na stałych obiektach, a nie na tabelach i kolumnach, wykazuje funkcjonalność potężnego języka zapytań.

JPQL lub Java Persistence Query Language to nadzbiór. Dlatego prawidłowe zapytanie JPQL jest uważane za dobre zapytanie HQL. Jednak nie wszystkie poprawne zapytania HQL są poprawnymi zapytaniami JPQL i na odwrót.

Zapytania dotyczące kryteriów hibernacji

Korzystając z API Criteria Query, możliwe jest konstruowanie zagnieżdżonych, ustrukturyzowanych wyrażeń zapytań w Javie, co pozwala na weryfikację składni w czasie kompilacji, której nie można uzyskać w języku zapytań, takim jak HQL lub SQL. Oprócz funkcji zapytania według przykładu (QBE), interfejs API kryteriów zawiera inne funkcje.

Na przykład dostarczanie instancji obiektów posiadających pożądane cechy zamiast wyjaśniania elementów wyszukiwania krok po kroku może zaoszczędzić czas i wysiłek. Zawiera również techniki projekcji i agregacji, takie jak metoda liczenia ().

Konfiguracja Hibernacji EhCache

Funkcja buforowania zapewniana przez frameworki ORM pozwala użytkownikom na posiadanie szybko działającej aplikacji internetowej, jednocześnie pozwalając frameworkowi na zmniejszenie zapytań wykonywanych w bazie danych dla pojedynczej transakcji. Buforowanie jest pomocne dla użytkowników i frameworka. Hibernacja rozszerza buforowanie zarówno na pierwszym, jak i drugim poziomie hierarchii.

Wniosek

Oprogramowanie Hibernate jest uważane za wysoce funkcjonalną platformę dla wszystkich rzeczy związanych z Javą. W tym samouczku Hibernate omówiliśmy podstawy korzystania z Hibernate.

Jeśli chcesz dogłębnie poznać platformę Hibernate i zrozumieć fundamentalny przepływ aplikacji typu end-to-end, wynikający z integracji z platformą Spring 3, zalecamy dołączenie do programu Executive PG UpGrad w programie Full Stack Development .

13-miesięczny kurs jest przeznaczony dla programistów, informatyków, inżynierów, analityków, specjalistów ds. wsparcia technicznego i nowicjuszy, którzy chcą opracować podstawy podstaw informatyki, operacji programistycznych, tworzenia skalowalnych stron internetowych, interfejsów API zaplecza itp.

Program obejmuje ponad 10 narzędzi i języków programowania, ponad 7 studiów przypadków i projektów, kursy szkoleniowe oraz dostęp do nauki o danych i uczenia maszynowego.

Nie czekaj. Zarezerwuj miejsce już dziś!

Jak stworzyć SessionFactory we frameworku Hibernate?

Dowolna aplikacja użytkownika może zażądać obiektu sesji, kontaktując się z Session Factory. Fabryka sesji używa informacji konfiguracyjnych z plików do prawidłowego utworzenia obiektu sesji.

Jak skonfigurować buforowanie i buforowanie połączeń hibernacji?

Hibernate domyślnie wykorzystuje połączenia JDBC do komunikacji z systemem bazy danych. Jednak tworzenie tych połączeń jest czasochłonne, kosztowne i prawdopodobnie jest najdroższą pojedynczą czynnością, jaką wykona Hibernate w typowym scenariuszu użytkowania. Ze względu na wysoki koszt zarządzania połączeniami JDBC można skorzystać z puli połączeń, która nawiązuje relacje z wyprzedzeniem.

Co to jest klasa trwała w Javie?

Każda klasa, która stosuje się do koncepcji zorientowanych obiektowo, takich jak dziedziczenie i polimorfizm, może być klasą trwałą w aplikacji Java.