Sissejuhatus hibernate arhitektuuri

Enne hibernaadi arhitektuuri juurde asumist vaatame läbi, miks hibernate pildile sattus ja mis eesmärki see meie jaoks lahendab. Hibernate on java programmeerimiskeele ORM (Object Relational Mapping) tööriist objektipõhise andmebaasist sõltumatu püsimisloogika arendamiseks. Hibernate pakub abstraktsiooni kihti andmebaasis andmete hankimiseks ja salvestamiseks.

Miks hibernate?

JDBC (Java Database Connectivity) sõltub andmebaasist. Täpsemalt sõltub JDBC abil rakendusest käivitatavate päringute kirjutamine sellest, millise andmebaasiga töötate. Kui töötate MySQL või Oracle'iga, on teie päringud erinevad. Nii et kui keset projekti peate muutma oma andmebaasi, mis nõuab ka koodi muutmist, ja muidugi me ei soovi seda. Arvestades, et hibernate kasutab andmebaasist sõltumatut hibernate päringikeelt. Lühidalt öeldes hoolitseb hibernate enamiku selle eest, mida arendaja pidi tegema näiteks JDBC-ga. Ühenduse avamine DB-ga, ühenduste sulgemine, mitmesuguste erandite käsitlemine.

Nii et laskem hibernate arhitektuuril paremini aru saada, kuidas hibernate on andmete püsivuse nii palju lihtsamaks teinud.

Hibernate arhitektuur

Mis tahes ORM-i peamine kontseptsioon on andmebaasispetsiifiliste SQL-i päringute kirjutamine objektide manipuleerimisega.

Lihtsamalt öeldes:

  • loote POJO (tavaline vana Java objekt)
  • määrake väljadele väärtused setterite abil
  • öelge, et hibernate jääb nendele objektidele püsima

Hibernate seob Java klassid andmebaasi tabeliteks (mis hõlmab ka java andmetüüpide kaardistamist SQL andmetüüpidega).

Seega võtab see ära javaväljade SQL-toetatud andmetüüpideks konverteerimise valu. Hibernate teeb seda teie eest.

See vabastab arendaja ka tulemuste komplekti käsitlemise valudest.

Java rakendus

Püsivusloogika arendamisel peame kasutama Java ressursi rakenduse mõnda ressurssi. Vaatame neid ressursse.

Mis tahes hibernate rakenduse keskmes on selle konfiguratsioon, mis tehakse kasutades,

  • Konfiguratsioonifail
  • Faili kaardistamine

Hibernate konfiguratsioonifail

Me määratleme omadused, mis ütlevad talveunerežiimile, millist andmebaasi see peab kasutama ja millist JDBC draiverit kasutama. Kogu selle teabe saamiseks kasutab hibernate konfiguratsioonifaili.

Ehkki Hibernate on võimeline genereerima andmebaasipäringuid, saame murret täpsustada, et aidata tal vajaliku andmebaasi jaoks paremat SQL-i genereerida.

Näiteks on järgmised omadused, mille tavaliselt määrate kevadise alglaadimise rakenduses

Hibernate kaardifail

See sisaldab kõiki klassidevahelisi kaardistamise määratlusi. Iga ORM-i tööriist vajab kaardistamisfaili. Kasutame hibernate'i määramiseks järgmisi viise, millist väärtust tuleb tabelisse millisesse veergu salvestada.

  • XML
  • Märkused

Xml kaardistamise faili süntaks kevadel,

Järgnevalt kirjeldame märkuse muutuja märkimist, mis tuleks kaardistada andmebaasi rea veergu.

Domeeniklass

Nagu me teame, on Hibernate tuntud objektipõhise püsimisloogika arendamise kaudu. Seega on domeeniklass POJO, mis on kaardistatud andmebaasi tabelisse.

Seadistamine

Andmebaasiga ühenduse loomiseks peab hibernate teadma andmebaasi üksikasju, klasse ja muid üksikasju. Konfiguratsiooniobjekt luuakse üks kord pärast rakenduse initsialiseerimist. See vastutab peamiselt hibernaadi alglaadimise eest rakendusele. Konfiguratsiooniobjekt kasutab konfiguratsioonifaili ja hibernate kaardistamise faili järgmiste toimingute tegemiseks:

  • Laadige need failid alla.
  • Kontrollib, kas need failid on hästi vormistatud ja kehtivad.
  • Loob nende kahe faili mälus olevad metaandmed.
  • Tagastab objekti, mis sisaldab neid metaandmeid.

Sessioonitehas

Seansiobjektide loomiseks kasutatakse sessioonitehast. Selle loob konfiguratsiooniobjekt. See pakub abstraktsiooni kihti, nii et me ei pea muretsema, kuidas seansiobjekt luuakse. See on niidivaba globaalne tehase klass seansside loomiseks. Konfiguratsiooniobjekti abil saame juurdepääsu konfiguratsiooni- ja kaardifailist loodud mälu andmetele.

Sealt saab JDBC atribuudid - draiveri nime, andmeallika URL-i, kasutajanime, parooli jne. Neid atribuute kasutades loob ühendusobjektid, mis tähistavad ühenduvust andmebaasiga.

Neid ühendusi kasutades luuakse ühendusbassein. Kogu konfiguratsiooniobjekti ja ühenduse kogumi teavet kasutatakse seansiobjekti loomiseks ja tagastamiseks. Seega on seansitehase objekt raskekaalu objekt. Iga seansi tehas on konfigureeritud töötama kindla andmebaasiga, kasutades ühte määratletud hibernaadi murretest.

Seanss

Üks asi, mida tuleb märkida, on see, et see pole seotud servleti seansi või java-posti seansiga. Seanss on värav meie andmebaasi. See loob silla meie rakendusest andmebaasi. Selle loob sessioonitehas. See võtab ühenduse objekti ja avab ühenduse / seansi andmebaasiga ning võimaldab rakendusel püsivusoperatsioone andmebaasis teha.

ORM-i tööriistas teostate kõiki toiminguid nagu INSERT, DELETE ja UPDATE, kasutades objektorienteeritud semantikat, mis tähendab, et te ei viita enam tabelitele, ridadele ja veergudele. Kõik püsivusoperatsioonid tehakse teie jaoks seansside tööna.

Tehing

Tehing on lühiajaline objekt, mis tähistab ühte tööüksust, näiteks objekti salvestamine või kustutamine andmebaasi tabelist. See võtab rakenduse kokku tehingust, mis on tehtud JDBC, JTA (Java Transaction API) jms abil.

Sisemiselt hibernate, kasutades JDBC, JTA, JNDI (Java nime ja kataloogiliides), et genereerida konfigureeritud andmebaasi SQL päringuid.

Järeldus

Selles artiklis vaatasime, kuidas talveunerežiimi kihiline arhitektuur aitab programmeerijal andmebaasiga töötada, ilma et peaksite teadma aluseks oleva API (nt JDBC, JTA ja JNDI) üksikasju. Saime teada, kuidas hibernate teeb meie elu lihtsamaks, käsitledes enamikku katlamaja koode, näiteks ühenduse avamist / sulgemist andmebaasiga. Loodetavasti annab see teile selge ülevaate hibernate arhitektuurist, mis aitab teil alustada hibernate raamistiku kasutamist oma rakendustes.

Soovitatavad artiklid

See on hibernate arhitektuuri juhend. Siin käsitleme talveunerežiimi kihilist arhitektuuri koos Java-rakendusega. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. Mis on talveune?
  2. Hibernate raamistik
  3. Talveune intervjuu küsimused
  4. Mis on Java hibernate?

Kategooria: