Introduktion till Hibernate Architecture

Innan vi går in i Hibernate Architecture, låt oss titta på varför Hibernate kom in i bilden och vilket syfte det löser för oss. Hibernate är ett ORM-verktyg (Object Relational Mapping) för ett java-programmeringsspråk för att utveckla objektbaserad databasoberoende persistenslogik. Hibernate tillhandahåller ett lager av abstraktion för att hämta och lagra data i en databas.

Varför viloläge?

JDBC (Java Database Connectivity) är databasberoende. För att vara mer specifik beror på att skriva frågor som ska köras från din applikation med JDBC beroende på vilken databas du arbetar med. Om du arbetar med MySQL eller Oracle kommer dina frågor att vara annorlunda. Så om du i mitten av ett projekt måste ändra din databas som kommer att kräva en kodändring också, och det vill vi naturligtvis inte. Hibernate använder ett databasoberoende Hibernate Query Language. Kort sagt, viloläge tar hand om det mesta av vad utvecklaren hade att göra med JDBC, till exempel. Öppna en anslutning till DB, stänga anslutningar, hantera olika undantag.

Så låt oss gå in i Hibernate Architecture för att bättre förstå hur Hibernate har gjort datainthållbarhet så mycket enklare.

Hibernate Architecture

Huvudkonceptet är varje ORM är att ersätta skriva databasspecifika SQL-frågor med manipulera objekt.

För att uttrycka det i enkla ord,

  • du skapar ett POJO (vanligt Java-objekt)
  • tilldela värden till fälten med hjälp av inställare
  • säg viloläge att kvarstå dessa föremål

Viloläge kartlägger Java-klasser till databastabeller (vilket också innebär att kartlägga java-datatyper till SQL-datatyper).

Så det tar bort smärtan av att konvertera java-fälten till SQL-stödda datatyper. Viloläge gör det åt dig.

Det befriar också utvecklaren från smärtan vid resultatuppsättningshantering.

Java-applikation

Samtidigt som vi utvecklar persistenslogiken måste vi ta stöd av vissa resurser i java-applikationen. Låt oss titta på dessa resurser.

Hjärtat i alla viloläge-applikationer ligger i dess konfiguration, som görs med hjälp av,

  • Konfigurationsfil
  • Kartlägga filen

Viloläge konfigurationsfil

Vi definierar egenskaperna som säger viloläge vilken databas den måste interagera med och vilken JDBC-drivrutin som ska användas. Hibernate använder en konfigurationsfil för att få all denna information.

Även om Hibernate kan generera databasfrågor, kan vi ange dialekten för att hjälpa den att generera bättre SQL för den nödvändiga databasen.

Till exempel är följande egenskaper du vanligtvis kommer att ställa in i en spring boot-applikation

Hibernate Mapping File

Det innehåller alla klassdefinitioner från klass till tabell. Varje ORM-verktyg behöver en kartläggningsfil. Vi använder följande sätt för att berätta Viloläge vilket värde för ett objekt som måste lagras i vilken kolumn i tabellen.

  • XML
  • anteckningar

Syntax för en xml-mappningsfil under våren,

Följande är hur vi kommenterar instansvariabeln som ska mappas till en kolumn i en rad i databasen.

Domänklass

Som vi vet är Hibernate känd för att utveckla objektbaserad persistenslogik. Så en domänklass är en POJO som mappas till en tabell i databasen.

Konfiguration

För att skapa en anslutning till databasen måste Hibernate känna till detaljerna i databasen, klasser och andra detaljer. Ett konfigurationsobjekt skapas en gång när ett program initialiseras. Det är huvudsakligen ansvarigt för bootstrapping Hibernate till applikationen. Ett konfigurationsobjekt använder konfigurationsfilen och vilolägen mappningsfil för att utföra följande steg:

  • Ladda dessa filer.
  • Kontrollerar om dessa filer är välformade och giltiga.
  • Skapar metadata i minnet för dessa två filer.
  • Returnera ett objekt som innehåller dessa metadata.

Session Factory

En sessionfabrik används för att skapa sessionobjekt. Det skapas av konfigurationsobjektet. Det ger ett lager av abstraktion, så vi behöver inte oroa oss för hur sessionobjektet skapas. Det är en trådfri säker fabriksklass för att skapa sessioner. Med hjälp av konfigurationsobjektet får vi tillgång till data i minnet som skapats från konfigurations- och kartläggningsfilen.

Därifrån får den JDBC-egenskaperna - drivrutinens namn, datakällans URL, användarnamn, lösenord osv. Med hjälp av dessa egenskaper skapas anslutningsobjekt som representerar anslutning till databasen.

Med hjälp av dessa anslutningar skapas en anslutningspool. All information från konfigurationsobjektet och anslutningspoolen används för att skapa och returnera ett sessionobjekt. Därför är ett sessionfabriksobjekt ett tungviktigt objekt. Varje session fabrik är konfigurerad för att arbeta med en specifik databas med hjälp av en av de angivna vilolägen dialekter.

Session

En sak att notera är att det inte är relaterat till en servlet-session eller en java-postsession. En session är en gateway till vår databas. Det skapar en bro från vår applikation till databasen. Det skapas av sessionen fabriken. Det tar anslutningsobjektet och öppnar en anslutning / session till databasen och tillåter applikationen att utföra persistensoperationer i databasen.

I ett ORM-verktyg utför du alla operationer som INSERT, DELETE och UPDATE med hjälp av objektorienterad semantik, vilket innebär att du inte längre hänvisar till tabeller, rader och kolumner. Det är sessionernas arbete att göra alla uthållighetstransaktioner för dig.

Transaktion

En transaktion är ett kortlivat objekt som representerar en enda arbetsenhet som att spara eller ta bort ett objekt i en tabell i databasen. Det abstraherar applikationen från den underliggande transaktionen som gjorts med hjälp av JDBC, JTA (Java Transaction API), etc.

Internt, viloläge med JDBC, JTA, JNDI (Java Naming och Directory Interface) för att generera SQL-frågor för den konfigurerade databasen.

Slutsats

I den här artikeln tittade vi på hur den skiktade arkitekturen i viloläge hjälper en programmerare att arbeta med en databas utan att behöva veta detaljerna i det underliggande API: t som JDBC, JTA och JNDI. Vi lärde oss hur Hibernate underlättar vårt liv genom att hantera det mesta av koden för pannplattan som att öppna / stänga anslutningen till databasen. Förhoppningsvis ger detta dig en klar förståelse av Hibernate Architecture, som kommer att komma igång med att använda Hibernate Framework i dina applikationer.

Rekommenderade artiklar

Detta är en guide till viloläge arkitektur. Här diskuterar vi den skiktade arkitekturen för viloläge tillsammans med Java-applikationen. Du kan också titta på följande artikel för att lära dig mer -

  1. Vad är viloläge?
  2. Hibernate Framework
  3. Hibernate Interview Questions
  4. Vad är Java Hibernate?

Kategori: