Introducere în Arhitectură Hibernată

Înainte de a intra în Arhitectura Hibernate, să ne uităm de ce Hibernate a apărut în imagine și cu ce scop ne rezolvă. Hibernate este un instrument ORM (Object Relational Mapping) pentru un limbaj de programare java pentru a dezvolta o logică de persistență independentă bazei de date. Hibernate oferă un strat de abstractizare pentru preluarea și stocarea datelor într-o bază de date.

De ce Hibernate?

JDBC (Java Database Connectivity) depinde de baza de date. Pentru a fi mai specific, scrierea întrebărilor care urmează să fie executate din aplicația dvs. folosind JDBC depinde de ce bază de date lucrați. Dacă lucrați cu MySQL sau Oracle, întrebările dvs. vor fi diferite. Deci, dacă în mijlocul unui proiect, trebuie să vă schimbați baza de date care va necesita și o schimbare de cod și, desigur, nu vrem asta. Întrucât, hibernate folosește un limbaj de interogare Hibernate independent de baza de date. Pe scurt, hibernatul are grijă de cea mai mare parte a ceea ce dezvoltatorul a avut de-a face cu JDBC, de exemplu. Deschiderea unei conexiuni la DB, închiderea conexiunilor, gestionarea diverselor excepții.

Așadar, haideți să intrăm în Arhitectura Hibernate pentru a înțelege mai bine cum Hibernate a făcut ca persistența datelor să fie mult mai ușoară.

Arhitectură Hibernată

Conceptul principal fiind orice ORM este înlocuirea scrierii interogărilor SQL specifice bazei de date cu obiecte manipulatoare.

Pentru a spune cuvinte simple,

  • creați un POJO (Obiect Java simplu simplu)
  • alocați valori câmpurilor folosind setatori
  • spuneți hibernării să persiste acele obiecte

Hibernează hărți clase Java la tabelele bazei de date (care implică, de asemenea, maparea tipurilor de date java la tipurile de date SQL).

Deci, elimină durerea de a converti câmpurile java în tipuri de date suportate de SQL. Hibernate o face pentru tine.

De asemenea, îl scutește pe dezvoltator de durerea manipulării setului de rezultate.

Aplicația Java

În timp ce dezvoltăm logica persistenței, trebuie să luăm sprijinul unor resurse din aplicația java. Să ne uităm la aceste resurse.

Inima oricărei aplicații Hibernate se află în configurația sa, care se realizează folosind,

  • Fișier de configurare
  • Fișier de mapare

Fișier de configurare hibernare

Definim proprietățile care spun că hibernează cu ce bază de date trebuie să interacționeze și cu ce driver JDBC să folosească. Hibernate folosește un fișier de configurare pentru a obține toate aceste informații.

Deși Hibernate este capabil să genereze interogări în baza de date, putem specifica dialectul pentru a-l ajuta să genereze SQL mai bun pentru baza de date necesară.

De exemplu, următoarele sunt proprietățile pe care le veți seta de obicei într-o aplicație de pornire cu arc

Fișier de mapare hibernant

Acesta conține toate definițiile de mapare de la clasă la masă. Fiecare instrument ORM are nevoie de un fișier de mapare. Folosim următoarele modalități pentru a spune Hibernate ce valoare a unui obiect trebuie stocat în coloana tabelului.

  • XML
  • Adnotările

Sintaxa unui fișier de mapare xml în primăvară,

Urmărește modul în care adnotăm variabila de instanță care ar trebui mapată într-o coloană dintr-un rând din baza de date.

Clasa de domeniu

După cum știm, Hibernate este cunoscut pentru dezvoltarea logicii persistenței bazate pe obiecte. Deci o clasă de domeniu este un POJO care este mapat într-un tabel din baza de date.

configurație

Pentru a crea o conexiune la baza de date, Hibernate trebuie să cunoască detaliile bazei de date, clase și alte detalii. Un obiect de configurare este creat o dată la inițializarea unei aplicații. Acesta este responsabil în principal pentru bootstrapping Hibernate pentru aplicație. Un obiect de configurare folosește fișierul de configurare și fișierul de mapare hibernare pentru a efectua următorii pași:

  • Încărcați aceste fișiere.
  • Verifică dacă aceste fișiere sunt bine formate și valide.
  • Creează metadate în memorie ale acestor două fișiere.
  • Returnați un obiect care conține aceste metadate.

Fabrica de sesiuni

O fabrică de sesiuni este utilizată pentru a crea obiecte de sesiune. Este creat de obiectul de configurare. Oferă un strat de abstractizare, deci nu trebuie să ne facem griji cu privire la modul în care este creat obiectul sesiunii. Este o clasă de fabrică globală sigură pentru thread pentru crearea de sesiuni. Folosind obiectul de configurare, obținem acces la datele din memorie create din fișierul de configurare și mapare.

De acolo, primește proprietățile JDBC - numele driverului, adresa URL a sursei de date, numele de utilizator, parola, etc. Folosind aceste proprietăți, va crea obiecte de conexiune, reprezentând conectivitatea la baza de date.

Utilizând aceste conexiuni, este creat un pool de conexiuni. Toate informațiile din obiectul de configurare și grupul de conexiuni sunt utilizate pentru a crea și returna un obiect de sesiune. Prin urmare, un obiect din fabrică de sesiune este un obiect greu. Fiecare fabrică de sesiuni este configurată să funcționeze cu o bază de date specifică folosind unul dintre dialectele hibernate specificate.

Sesiune

Un lucru de remarcat este faptul că nu are legătură cu o sesiune de servlet sau o sesiune de mail java. O sesiune este o poartă de intrare în baza noastră de date. Creează o punte din aplicația noastră către baza de date. Este creat de fabrica de sesiuni. Preia obiectul de conexiune și deschide o conexiune / sesiune la baza de date și permite aplicației să efectueze operații de persistență în baza de date.

Într-un instrument ORM, efectuați toate operațiunile cum ar fi INSERT, DELETE și UPDATE folosind semantice orientate pe obiecte, ceea ce înseamnă că nu mai faceți referire la tabele, rânduri și coloane. Este sesiunea de lucru pentru a face toate operațiunile de persistență pentru tine.

Tranzacţie

O tranzacție este un obiect de scurtă durată care reprezintă o singură unitate de lucru precum salvarea sau ștergerea unui obiect dintr-un tabel din baza de date. Rezumă aplicația din tranzacția de bază realizată folosind JDBC, JTA (API-ul tranzacției Java) etc.

Intern, hibernează folosind JDBC, JTA, JNDI (Java Naming and Directory Interface) pentru a genera interogări SQL pentru baza de date configurată.

Concluzie

În acest articol, am analizat modul în care arhitectura stratificată a hibernării ajută un programator să lucreze cu o bază de date fără a fi nevoie să cunoască detaliile API-ului de bază precum JDBC, JTA și JNDI. Am învățat cum Hibernate ne face viața mai ușoară prin manipularea majorității codului plăcii cazanului, precum deschiderea / închiderea conexiunii la baza de date. Sperăm că acest lucru vă va oferi o înțelegere clară a arhitecturii Hibernate, care vă va ajuta să începeți utilizarea Hibernate Framework în aplicațiile dvs.

Articole recomandate

Acesta este un ghid pentru Arhitectura Hibernate. Aici vom discuta despre arhitectura stratificată a hibernării împreună cu aplicația Java. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Ce este Hibernate?
  2. Cadrul Hibernat
  3. Întrebări la interviu Hibernate
  4. Ce este Java Hibernate?