Johdatus hibernaattiarkkitehtuuriin

Ennen kuin aloitat hibernaattiarkkitehtuurin, katsotaanpa miksi Hibernate tuli kuvaan ja mihin tarkoitukseen se meille ratkaisee. Hibernate on ORM (Object Relational Mapping) -työkalu Java-ohjelmointikielelle objektipohjaisen tietokannasta riippumattoman pysyvyyslogiikan kehittämiseksi. Hibernate tarjoaa abstraktikerroksen tietojen hakemiseen ja tallentamiseen tietokantaan.

Miksi Hibernate?

JDBC (Java Database Connectivity) on tietokannasta riippuvainen. Tarkemmin sanottuna sovelluksesta suoritettavien kyselyiden kirjoittaminen JDBC: tä käyttämällä riippuu siitä, minkä tietokannan kanssa työskentelet. Jos työskentelet MySQL: n tai Oraclen kanssa, kyselysi ovat erilaiset. Joten jos projektin keskellä sinun on vaihdettava tietokanta, joka edellyttää myös koodin vaihtamista, emme tietenkään halua sitä. Taas lepotila käyttää tietokannasta riippumatonta hibernaattikyselykieltä. Lyhyesti sanottuna, hibernate hoitaa suurimman osan siitä, mitä kehittäjällä oli tekemistä esimerkiksi JDBC: n kanssa. Yhteyden avaaminen DB: hen, yhteyksien sulkeminen, erilaisten poikkeusten käsittely.

Joten siirrytään hibernaattiarkkitehtuuriin ymmärtääksemme paremmin, kuinka Hibernate on helpottanut tiedon pysyvyyttä.

Hibernate-arkkitehtuuri

Minkä tahansa ORM: n pääkonsepti on korvata tietokantakohtaisten SQL-kyselyiden kirjoittaminen objektien manipuloinnilla.

Yksinkertaisesti sanottuna,

  • luot POJO: n (Plain Old Java Object)
  • määritä arvot kenttiin settereillä
  • kerro hibernate jatkavan noita esineitä

Hibernate kuvaa Java-luokat tietokantataulukoihin (joihin sisältyy myös Java-tietotyyppien kartoittaminen SQL-tietotyypeiksi).

Joten se vie pois tuskan muuntamalla Java-kentät SQL-tuetuiksi tietotyypeiksi. Hibernate tekee sen puolestasi.

Se myös vapauttaa kehittäjän tuloksen asettelun käsittelyn tuskasta.

Java-sovellus

Pysyvyyslogiikkaa kehitettäessä meidän on otettava huomioon joidenkin resurssien tuki Java-sovellukseen. Katsotaanpa näitä resursseja.

Jokaisen Hibernate-sovelluksen ydin on sen konfiguroinnissa, joka tehdään käyttämällä,

  • Asetustiedosto
  • Kartoitustiedosto

Hibernaatti-asetustiedosto

Määrittelemme ominaisuudet, jotka ilmoittavat hibernaatiolle, minkä tietokannan on oltava vuorovaikutuksessa ja mitä JDBC-ohjainta käytetään. Hibernate käyttää kokoonpanotiedostoa saadaksesi kaikki nämä tiedot.

Vaikka Hibernate pystyy tuottamaan tietokantakyselyjä, voimme määritellä murran auttaaksemme sitä luomaan paremman SQL: n vaaditulle tietokannalle.

Esimerkiksi seuraavat ovat ominaisuudet, jotka yleensä määrität kevätkäynnistyssovelluksessa

Hibernaatin karttatiedosto

Se sisältää kaikki luokan ja pöydän väliset kartoitusmääritelmät. Jokainen ORM-työkalu tarvitsee kartoitustiedoston. Käytämme seuraavia tapoja kertoa Hibernate-sovellukselle, mikä esineen arvo on tallennettava mihin taulukon sarakkeeseen.

  • XML
  • merkinnät

Xml-kartoitustiedoston syntaksi keväällä,

Seuraava on, kuinka merkitsemme esiintymämuuttujan, joka tulisi kartoittaa tietokannan rivin sarakkeeseen.

Verkkotunniluokka

Kuten tiedämme, Hibernate tunnetaan objektipohjaisen pysyvyyslogiikan kehittämisestä. Joten verkkotunnusluokka on POJO, joka yhdistetään tietokannan taulukkoon.

kokoonpano

Luodakseen yhteys tietokantaan Hibernaten on tiedettävä tietokannan yksityiskohdat, luokat ja muut yksityiskohdat. Konfigurointiobjekti luodaan kerran, kun sovellus alustetaan. Se on pääasiassa vastuussa Hibernaten käynnistämisestä sovellukseen. Konfigurointiobjekti suorittaa seuraavat vaiheet konfiguraatiotiedoston ja lepotilan kartoitustiedoston:

  • Lataa nämä tiedostot.
  • Tarkistaa, ovatko nämä tiedostot hyvin muotoiltuja ja kelvollisia.
  • Luo muistista metatiedot näistä kahdesta tiedostosta.
  • Palauta objekti, joka sisältää nämä metatiedot.

Istunto tehdas

Istuntovalmistetta käytetään luomaan istuntoobjekteja. Se on konfigurointiobjektin luoma. Se tarjoaa tason abstrakteja, joten meidän ei tarvitse huolehtia siitä, kuinka istuntoobjekti luodaan. Se on langaton globaali tehdasluokka istuntojen luomiseen. Konfigurointiobjektin avulla pääsemme muistiin tallennettuihin tietoihin, jotka on luotu määritys- ja kartoitustiedostosta.

Sieltä se saa JDBC-ominaisuudet - ohjaimen nimen, tietolähteen URL-osoitteen, käyttäjänimen, salasanan jne. Näitä ominaisuuksia käyttämällä se luo yhteysobjekteja, jotka edustavat yhteyksiä tietokantaan.

Näiden yhteyksien avulla luodaan yhteysallas. Kaikkia määritysobjektin ja yhteysryhmän tietoja käytetään istuntoobjektin luomiseen ja palauttamiseen. Siksi istunto tehdasobjekti on raskas esine. Jokainen istunto tehdas on määritetty toimimaan tietyn tietokannan kanssa käyttämällä yhtä määritettyjä lepotilamurteita.

istunto

Yksi huomionarvoinen asia on, että se ei liity servlet-istuntoon tai Java-postiistuntoon. Istunto on portti tietokantaamme. Se luo sillan sovelluksemme tietokantaan. Sen on luonut istunto tehdas. Se vie yhteysobjektin ja avaa yhteyden / istunnon tietokantaan ja antaa sovelluksen suorittaa pysyvyystoimintoja tietokannassa.

ORM-työkalussa suoritat kaikki toiminnot, kuten INSERT, DELETE ja UPDATE, oliokeskeisen semantiikan avulla, mikä tarkoittaa, että et enää viittaa taulukoihin, riveihin ja sarakkeisiin. Istuntojen on tehtävä kaikki pysyvyystoimenpiteet puolestasi.

liiketoimi

Tapahtuma on lyhytaikainen objekti, joka edustaa yhtä työyksikköä, kuten objektin tallentaminen tai poistaminen tietokannan taulukosta. Se abstraktii sovelluksen taustalla olevasta tapahtumasta, joka on tehty käyttämällä JDBC, JTA (Java Transaction API) jne.

Sisäisesti lepotilaan käyttämällä JDBC, JTA, JNDI (Java Naming and Directory Interface) -sovelluksia SQL-kyselyiden luomiseksi määritettyyn tietokantaan.

johtopäätös

Tässä artikkelissa tarkasteltiin kuinka hibernaatin kerrosarkkitehtuuri auttaa ohjelmoijaa työskentelemään tietokannan kanssa ilman, että sinun on tiedettävä taustalla olevan sovellusliittymän, kuten JDBC, JTA ja JNDI, yksityiskohtia. Opimme kuinka Hibernate tekee elämästämme helpompaa käsittelemällä suurimpaa osaa kattilalevykoodista, kuten avaamalla / sulkemalla yhteys tietokantaan. Toivottavasti tämä antaa sinulle selkeän käsityksen hibernate-arkkitehtuurista, joka vie sinut alkuun hibernate-kehyksen käyttämiseen sovelluksissasi.

Suositellut artikkelit

Tämä on opas Hibernate-arkkitehtuuriin. Tässä keskustellaan hibernaation kerrosarkkitehtuurista yhdessä Java-sovelluksen kanssa. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -

  1. Mikä on Hibernate?
  2. Hibernate-kehys
  3. Hibernate-haastattelukysymykset
  4. Mikä on Java Hibernate?