Úvod do režimu spánku

Než se dostaneme do Hibernate Architecture, podívejme se, proč Hibernate přišel na obrázek a jaký účel to pro nás řeší. Hibernace je nástroj ORM (Object Relational Mapping) pro programovací jazyk java pro vývoj logiky perzistence založené na objektově založené databázi. Hibernace poskytuje vrstvu abstrakce pro získávání a ukládání dat do databáze.

Proč Hibernace?

JDBC (Java Database Connectivity) závisí na databázi. Konkrétněji, psaní dotazů, které se mají spouštět z vaší aplikace pomocí JDBC, závisí na tom, s jakou databází pracujete. Pokud pracujete s MySQL nebo Oracle, vaše dotazy se budou lišit. Pokud tedy uprostřed projektu potřebujete změnit databázi, která bude vyžadovat také změnu kódu, a samozřejmě to nechceme. Zatímco hibernace používá Hibernate Query Language nezávislý na databázi. Stručně řečeno, hibernace se stará o většinu toho, co vývojář musel dělat s JDBC, např. Otevření připojení k DB, uzavření připojení, zpracování různých výjimek.

Pojďme se tedy dostat do Hibernate Architecture, abychom lépe porozuměli tomu, jak Hibernate výrazně usnadňuje perzistenci dat.

Hibernační architektura

Hlavním konceptem jakéhokoli ORM je nahrazení psaní dotazů SQL specifických pro databázi manipulačními objekty.

Jednoduše řečeno,

  • vytvoříte POJO (Plain Old Java Object)
  • přiřaďte hodnoty k polím pomocí setters
  • řekněte hibernaci, aby tyto objekty přetrvával

Hibernace mapuje třídy Java do databázových tabulek (což také zahrnuje mapování datových typů java na datové typy SQL).

Odstraňuje tedy bolest převodu polí java na datové typy podporované SQL. Hibernace to udělá za vás.

Rovněž zbavuje vývojáře bolesti při manipulaci se sadou výsledků.

Java aplikace

Při vývoji logiky perzistence je třeba převzít podporu některých zdrojů v aplikaci java. Podívejme se na tyto zdroje.

Srdcem každé aplikace Hibernace je její konfigurace, která se provádí pomocí,

  • Konfigurační soubor
  • Mapovací soubor

Hibernace konfiguračního souboru

Definujeme vlastnosti, které říkají hibernaci, s jakou databází musí interagovat a s kterým ovladačem JDBC použít. Hibernate používá k získání všech těchto informací konfigurační soubor.

Přestože Hibernate dokáže generovat databázové dotazy, můžeme určit dialekt, který mu pomůže vytvořit lepší SQL pro požadovanou databázi.

Například následující jsou vlastnosti, které obvykle nastavíte v jarní spouštěcí aplikaci

Hibernate Mapping File

Obsahuje všechny definice mapování třídy do tabulky. Každý nástroj ORM potřebuje mapovací soubor. Pomocí následujících způsobů sdělíme Hibernaci, jaká hodnota objektu musí být uložena ve kterém sloupci tabulky.

  • XML
  • Anotace

Syntaxe xml mapovacího souboru na jaře,

Následuje anotace proměnné instance, která by měla být mapována, do sloupce řádku v databázi.

Třída domény

Jak víme, Hibernate je známý pro vývoj logiky vytrvalosti založené na objektech. Třída domény je POJO, které je mapováno do tabulky v databázi.

Konfigurace

Chcete-li vytvořit připojení k databázi, musí Hibernate znát podrobnosti o databázi, třídách a dalších podrobnostech. Po inicializaci aplikace se vytvoří konfigurační objekt. Je to hlavně zodpovědné za zavádění systému Hibernace do aplikace. Konfigurační objekt používá konfigurační soubor a soubor mapování režimu spánku k provedení následujících kroků:

  • Načtěte tyto soubory.
  • Zkontroluje, zda jsou tyto soubory správně formátované a platné.
  • Vytvoří v paměti metadata těchto dvou souborů.
  • Vrátit objekt, který obsahuje tato metadata.

Session Factory

Továrna relace se používá k vytváření objektů relace. Je vytvořen konfiguračním objektem. Poskytuje vrstvu abstrakce, takže se nemusíme starat o vytvoření objektu relace. Jedná se o globální tovární třídu bezpečnou pro vytváření relací. Pomocí konfiguračního objektu získáme přístup k datům v paměti vytvořeným z konfiguračního a mapovacího souboru.

Odtud získává vlastnosti JDBC - jméno ovladače, URL zdroje dat, uživatelské jméno, heslo atd. Pomocí těchto vlastností vytvoří objekty připojení představující připojení k databázi.

Pomocí těchto připojení se vytvoří fond připojení. Všechny informace z konfiguračního objektu a fondu připojení se používají k vytvoření a vrácení objektu relace. Proto je tovární objekt relace objektem těžké váhy. Každá továrna relací je nakonfigurována tak, aby pracovala s konkrétní databází pomocí jednoho ze specifikovaných dialektů Hibernace.

Zasedání

Jedna věc, kterou je třeba poznamenat, je to, že se netýká relace servletu nebo relace javy pošty. Relace je bránou do naší databáze. Vytváří most z naší aplikace do databáze. Je vytvořen výrobcem relace. Vezme objekt připojení a otevře připojení / relaci do databáze a umožňuje aplikaci provádět v databázi operace perzistence.

V nástroji ORM provádíte všechny operace jako INSERT, DELETE a UPDATE pomocí objektově orientované sémantiky, což znamená, že již neodkazujete na tabulky, řádky a sloupce. Veškeré operace vytrvalosti za vás provádějí relace.

Transakce

Transakce je krátkodobý objekt, který představuje jednu jednotku práce, jako je uložení nebo odstranění objektu v tabulce v databázi. Abstrakt aplikace od podkladové transakce provedené pomocí JDBC, JTA (Java Transaction API) atd.

Interně, hibernace pomocí JDBC, JTA, JNDI (Java Naming and Directory Interface) pro generování dotazů SQL pro nakonfigurovanou databázi.

Závěr

V tomto článku jsme se zabývali tím, jak vrstvená architektura režimu spánku pomáhá programátorovi pracovat s databází, aniž by museli znát podrobnosti o základním API, jako jsou JDBC, JTA a JNDI. Dozvěděli jsme se, jak Hibernate usnadňuje náš život zpracováním většiny kódu kotlové desky, jako je otevření / uzavření připojení k databázi. Doufejme, že vám to poskytne jasné porozumění Hibernate Architecture, což vám pomůže začít používat Hibernate Framework ve vašich aplikacích.

Doporučené články

Toto je průvodce Hibernate Architecture. Zde diskutujeme vrstvenou architekturu hibernace spolu s aplikací Java. Další informace naleznete také v následujícím článku -

  1. Co je Hibernace?
  2. Hibernace Framework
  3. Hibernate Interview Otázky
  4. Co je to Java Hibernate?

Kategorie: