Inleiding tot de slaapstand

Voordat we in de Hibernate-architectuur komen, laten we eerst kijken waarom Hibernate in beeld kwam en welk doel het voor ons oplost. Hibernate is een ORM-tool (Object Relational Mapping) voor een Java-programmeertaal om objectgebaseerde database-onafhankelijke persistentielogica te ontwikkelen. Slaapstand biedt een abstractielaag voor het ophalen en opslaan van gegevens in een database.

Waarom overwinteren?

JDBC (Java Database Connectivity) is afhankelijk van de database. Om meer specifiek te zijn, het schrijven van vragen die vanuit uw applicatie met JDBC moeten worden uitgevoerd, is afhankelijk van de database waarmee u werkt. Als u met MySQL of Oracle werkt, zullen uw vragen anders zijn. Dus als u midden in een project uw database moet wijzigen waarvoor ook een codewijziging nodig is, en dat willen we natuurlijk niet. Terwijl hibernate een database-onafhankelijke Hibernate Query Language gebruikt. Kortom, winterslaap zorgt voor het grootste deel van wat de ontwikkelaar met JDBC te maken had, bijvoorbeeld. Een verbinding met de DB openen, verbindingen sluiten, verschillende uitzonderingen verwerken.

Laten we daarom de Hibernate-architectuur bekijken om beter te begrijpen hoe Hibernate de persistentie van gegevens zoveel gemakkelijker heeft gemaakt.

Overwinterende architectuur

Het hoofdconcept van elke ORM is het vervangen van database-specifieke SQL-query's door het manipuleren van objecten.

Om het in eenvoudige woorden te zeggen:

  • je maakt een POJO (gewoon oud Java-object)
  • wijs waarden aan de velden toe met behulp van setters
  • vertel winterslaap dat deze objecten blijven bestaan

Hibernate wijst Java-klassen toe aan databasetabellen (waarbij ook de Java-gegevenstypen worden toegewezen aan SQL-gegevenstypen).

Dus het neemt de pijn weg van het converteren van de Java-velden naar door SQL ondersteunde gegevenstypen. Hibernate doet het voor u.

Het ontlast ook de ontwikkelaar van de pijn van het hanteren van resultaten.

Java-applicatie

Bij het ontwikkelen van de persistentie-logica moeten we de ondersteuning van enkele bronnen in de Java-applicatie nemen. Laten we deze bronnen bekijken.

Het hart van elke Hibernate-toepassing ligt in de configuratie, die wordt uitgevoerd met,

  • Configuratiebestand
  • Mapping-bestand

Slaapstand configuratiebestand

We definiëren de eigenschappen die de slaapstand vertellen met welke database het moet communiceren en met welk JDBC-stuurprogramma. Hibernate gebruikt een configuratiebestand om al deze informatie te krijgen.

Hoewel Hibernate in staat is om databasequery's te genereren, kunnen we het dialect specificeren om het te helpen betere SQL voor de vereiste database te genereren.

Want bijvoorbeeld zijn de eigenschappen die u doorgaans instelt in een lente boot-applicatie

Slaapstandbestand toewijzen

Het bevat alle klassedefinitiedefinities. Elke ORM-tool heeft een toewijzingsbestand nodig. We gebruiken de volgende manieren om Hibernate te vertellen welke waarde van een object moet worden opgeslagen in welke kolom van de tabel.

  • XML
  • aantekeningen

Syntaxis van een XML-toewijzingsbestand in het voorjaar,

Hieronder ziet u hoe we de instantievariabele annoteren die moet worden toegewezen aan een kolom van een rij in de database.

Domein Klasse

Zoals we weten staat Hibernate bekend om het ontwikkelen van objectgebaseerde persistentielogica. Een domeinklasse is dus een POJO die is toegewezen aan een tabel in de database.

Configuratie

Om een ​​verbinding met de database te maken, moet Hibernate de details van de database, klassen en andere details kennen. Een configuratieobject wordt eenmaal gemaakt wanneer een toepassing wordt geïnitialiseerd. Het is voornamelijk verantwoordelijk voor het bootstrappen van de slaapstand naar de toepassing. Een configuratieobject gebruikt het configuratiebestand en het slaapstandbestand om de volgende stappen uit te voeren:

  • Laad deze bestanden.
  • Controleert of deze bestanden goed zijn gevormd en geldig zijn.
  • Creëert metagegevens in het geheugen van deze twee bestanden.
  • Retourneer een object dat deze metagegevens bevat.

Sessie fabriek

Een sessiefabriek wordt gebruikt om sessieobjecten te maken. Het wordt gemaakt door het configuratieobject. Het biedt een abstractielaag, dus we hoeven ons geen zorgen te maken over hoe het sessieobject wordt gemaakt. Het is een thread-safe wereldwijde fabrieksklasse voor het maken van sessies. Met behulp van het configuratieobject krijgen we toegang tot de geheugengegevens die zijn gemaakt op basis van het configuratie- en toewijzingsbestand.

Van daaruit krijgt het de JDBC-eigenschappen - stuurprogrammanaam, gegevensbron-URL, gebruikersnaam, wachtwoord, enz. Met behulp van deze eigenschappen maakt het verbindingsobjecten die de connectiviteit met de database vertegenwoordigen.

Met behulp van deze verbindingen wordt een verbindingspool gemaakt. Alle informatie uit het configuratieobject en de verbindingspool wordt gebruikt om een ​​sessieobject te maken en te retourneren. Daarom is een sessie-fabrieksobject een zwaargewicht object. Elke sessiefabriek is geconfigureerd om te werken met een specifieke database met behulp van een van de opgegeven slaapstanddialecten.

Sessie

Een ding om op te merken is dat het niet gerelateerd is aan een servlet-sessie of een Java-mailsessie. Een sessie is een toegangspoort tot onze database. Het maakt een brug van onze applicatie naar de database. Het wordt gemaakt door de sessiefabriek. Het neemt het verbindingsobject en opent een verbinding / sessie met de database, waardoor de toepassing persistentiebewerkingen op de database kan uitvoeren.

In een ORM-tool voert u alle bewerkingen zoals INSERT, DELETE en UPDATE uit met objectgeoriënteerde semantiek, wat betekent dat u niet langer verwijst naar tabellen, rijen en kolommen. Het is het sessiewerk om alle persistentiewerkzaamheden voor u te doen.

Transactie

Een transactie is een object van korte duur dat een enkele werkeenheid vertegenwoordigt, zoals het opslaan of verwijderen van een object in een tabel in de database. Het abstraheert de applicatie van de onderliggende transactie gedaan met behulp van JDBC, JTA (Java Transaction API), etc.

Intern overwinteren met JDBC, JTA, JNDI (Java Naming en Directory Interface) om SQL-query's te genereren voor de geconfigureerde database.

Conclusie

In dit artikel hebben we gekeken hoe de gelaagde architectuur van de slaapstand een programmeur helpt om met een database te werken zonder de details van de onderliggende API zoals JDBC, JTA en JNDI te kennen. We hebben geleerd hoe Hibernate ons leven gemakkelijker maakt door het grootste deel van de boilerplate-code te gebruiken, zoals het openen / sluiten van de verbinding met de database. Hopelijk geeft dit u een duidelijk begrip van de Hibernate Architecture, waarmee u aan de slag kunt met het gebruik van het Hibernate Framework in uw applicaties.

Aanbevolen artikelen

Dit is een gids voor Hibernate Architecture. Hier bespreken we de gelaagde architectuur van de slaapstand samen met de Java-toepassing. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. Wat is Hibernate?
  2. Hibernate Framework
  3. Vragen tijdens solliciteren bij Hibernate
  4. Wat is Java Hibernate?