Introduksjon til Hibernate Architecture

La oss se på hvorfor Hibernate kom inn i bildet, og hvilket formål det løser for oss før vi går inn på dvalemodusarkitekturen. Hibernate er et ORM-verktøy (Object Relational Mapping) for et java-programmeringsspråk for å utvikle objektbasert databaseavhengig persistenslogikk. Dvalemodus gir et lag med abstraksjon for å hente og lagre data i en database.

Hvorfor dvalemodus?

JDBC (Java Database Connectivity) er databaseavhengig. For å være mer spesifikk, avhenger det av hvilken database du jobber med å skrive spørsmål som skal kjøres fra applikasjonen din ved bruk av JDBC. Hvis du jobber med MySQL eller Oracle, vil spørsmålene dine være forskjellige. Så hvis du i midten av et prosjekt må endre databasen din som vil kreve endring av kode også, og det ønsker vi selvfølgelig ikke. Mens dvalemodus bruker et database-uavhengig Hibernate Query Language. Kort sagt, dvalemodus tar seg av det meste av hva utvikleren hadde å gjøre med JDBC, for f.eks. Åpne en forbindelse til DB, lukke tilkoblinger, håndtere forskjellige unntak.

Så la oss komme inn på Hibernate Architecture for å bedre forstå hvordan Hibernate har gjort datautholdenhet så mye enklere.

Dvale arkitektur

Hovedkonseptet å være ethvert ORM er å erstatte å skrive databasespesifikke SQL-spørsmål med manipulere objekter.

For å si det i enkle ord,

  • du oppretter et POJO (vanlig gammelt Java-objekt)
  • tilordne verdier til feltene ved hjelp av settere
  • fortell dvalemodus for å vedvare disse gjenstandene

Dvale kartlegger Java-klasser til databasetabeller (som også innebærer å kartlegge java-datatypene til SQL-datatyper).

Så det tar bort smerten ved å konvertere java-feltene til SQL-støttede datatyper. Dvale gjør det for deg.

Det fritar også utvikleren fra smertene ved håndtering av resultatsett.

Java-applikasjon

Mens vi utvikler utholdenhetslogikken, må vi ta støtte fra noen ressurser i java-applikasjonen. La oss se på disse ressursene.

Hjertet til enhver Hibernate-applikasjon ligger i konfigurasjonen, som gjøres ved å bruke,

  • Konfigurasjonsfil
  • Kartlegger fil

Dvale konfigurasjonsfil

Vi definerer egenskapene som forteller dvalemodus hvilken database den har å samhandle med og hvilken JDBC-driver som skal brukes. Dvale bruker en konfigurasjonsfil for å få all denne informasjonen.

Selv om Hibernate er i stand til å generere databaseforespørsler, kan vi spesifisere dialekten for å hjelpe den med å generere bedre SQL for den nødvendige databasen.

For f.eks. Følgende er egenskapene du vanligvis vil sette i et spring boot-program

Dvale kartleggingsfil

Den inneholder alle klassedefinisjonene for kartlegging av kartlegging. Hvert ORM-verktøy trenger en kartleggingsfil. Vi bruker følgende måter for å fortelle Hibernate hvilken verdi av et objekt som må lagres i hvilken kolonne i tabellen.

  • XML
  • merknader

Syntaks for en xml-kartleggingsfil om våren,

Følgende er hvordan vi kommenterer forekomstvariabelen som skal kartlegges til en kolonne på rad i databasen.

Domeneklasse

Som vi vet, er Hibernate kjent for å utvikle objektbasert utholdenhetslogikk. Så en domeneklasse er en POJO som er kartlagt til en tabell i databasen.

konfigurasjon

For å opprette en forbindelse til databasen, trenger Hibernate å vite detaljene i databasen, klasser og andre detaljer. Et konfigurasjonsobjekt opprettes en gang når et program initialiseres. Det er hovedsakelig ansvarlig for bootstrapping Hibernate til applikasjonen. Et konfigurasjonsobjekt bruker konfigurasjonsfilen og dvalemodusfilen til å utføre følgende trinn:

  • Last inn disse filene.
  • Sjekker om disse filene er velformede og gyldige.
  • Lager metadata i minnet for disse to filene.
  • Returner et objekt som inneholder disse metadataene.

Session Factory

En sesjonsfabrikk brukes til å lage sesjonsobjekter. Det opprettes av konfigurasjonsobjektet. Det gir et lag med abstraksjon, så vi trenger ikke å bekymre oss for hvordan øktobjektet opprettes. Det er en tråd-sikker global fabrikklasse for å lage økter. Ved hjelp av konfigurasjonsobjektet får vi tilgang til data i minnet som er opprettet fra konfigurasjons- og kartleggingsfilen.

Derfra får den JDBC-egenskapene - drivernavnet, datakildens URL, brukernavn, passord, etc. Ved å bruke disse egenskapene vil det opprette tilkoblingsobjekter, som representerer tilkobling til databasen.

Ved hjelp av disse tilkoblingene opprettes et tilkoblingsbasseng. All informasjonen fra konfigurasjonsobjektet og tilkoblingsbassenget brukes til å opprette og returnere et øktobjekt. Derfor er et sesjonsfabrikkobjekt et tungvektobjekt. Hver øktfabrikk er konfigurert til å arbeide med en spesifikk database ved hjelp av en av de angitte dvalemodulene.

Økt

Én ting å merke seg er at det ikke er relatert til en servletøkt eller en java mail-økt. En økt er en inngangsport til databasen vår. Det lager en bro fra applikasjonen vår til databasen. Det er opprettet av sesjonsfabrikken. Den tar tilkoblingsobjektet og åpner en tilkobling / økt til databasen, og lar applikasjonen utføre utholdenhetsoperasjoner i databasen.

I et ORM-verktøy utfører du alle operasjoner som INSERT, DELETE og UPDATE ved hjelp av objektorientert semantikk, noe som betyr at du ikke lenger refererer til tabeller, rader og kolonner. Det er øktene å gjøre alle utholdenhetsoperasjoner for deg.

Transaksjon

En transaksjon er et kortvarig objekt som representerer en enkelt enhet av arbeid som å lagre eller slette et objekt i en tabell i databasen. Den abstraherer applikasjonen fra den underliggende transaksjonen som gjøres ved å bruke JDBC, JTA (Java Transaction API), etc.

Internt, dvalemodus ved å bruke JDBC, JTA, JNDI (Java Naming og Directory Interface) for å generere SQL-spørringer for den konfigurerte databasen.

Konklusjon

I denne artikkelen så vi på hvordan den lagdelte arkitekturen i dvalemodus hjelper en programmerer å jobbe med en database uten å måtte vite detaljene i det underliggende APIet som JDBC, JTA og JNDI. Vi lærte hvordan Hibernate gjør livet enklere ved å håndtere det meste av kjeleplatkoden som å åpne / lukke tilkoblingen til databasen. Forhåpentligvis gir dette deg en klar forståelse av Hibernate Architecture, som vil sette deg i gang med å bruke Hibernate Framework i applikasjonene dine.

Anbefalte artikler

Dette er en guide til Hibernate Architecture. Her diskuterer vi den lagdelte arkitekturen for dvalemodus sammen med Java-applikasjonen. Du kan også se på følgende artikkel for å lære mer -

  1. Hva er dvalemodus?
  2. Dvale rammer
  3. Dvale intervjuspørsmål
  4. Hva er Java Hibernate?