Hibernate-Tutorial für Anfänger

Veröffentlicht: 2022-09-26

Open-Source Hibernate ist ein kostenloses OOP-Java-Framework, das in Webanwendungen verwendet wird, um objektorientierte Domänenmodelle mit relationalen Datenbanken abzubilden.

Man kann HQL und SQL verwenden, um Datenbanken abzufragen und ein robustes objektrelationales Mapping zu ermöglichen. Die ORM-Mapping-Implementierung in Java wird jedoch mit Hibernate vereinfacht, wodurch die Komplexität Ihrer Anwendung erheblich reduziert wird, und ist für Personen von Vorteil, die über ein grundlegendes Verständnis von SQL verfügen.

Schauen Sie sich unsere kostenlosen Kurse zum Thema Softwareentwicklung an.

Inhaltsverzeichnis

Entdecken Sie unsere kostenlosen Kurse zur Softwareentwicklung

Grundlagen des Cloud-Computing JavaScript-Grundlagen von Grund auf Datenstrukturen und Algorithmen
Blockchain-Technologie Reagieren für Anfänger Core-Java-Grundlagen
Java Node.js für Anfänger Fortgeschrittenes JavaScript

Architektur von Hibernate

Die Hibernate-Konfiguration wird normalerweise im Eigenschaftenabschnitt oder in den Dateien hibernate.cfg.xml gespeichert. Suchen Sie bei der Suche nach Java-Konfiguration nach Klassen, die mit der Anmerkung @Configuration gekennzeichnet sind.

Um mit einer Java-Anwendung und einer Datenbank zu arbeiten, beginnen Sie mit der Session Factory. Das Objekt repräsentiert die gesamte Zuordnungssammlung zwischen den Java-Typen einer Anwendung und einer SQL-Datenbank.

Sitzungsfabrik

Jede Benutzeranwendung kann ein Sitzungsobjekt anfordern, indem sie sich an Session Factory wendet. Die Sitzungsfabrik verwendet die in den Dateien enthaltenen Konfigurationsinformationen, um das Sitzungsobjekt zu erstellen. Anwendungs- und Datenbankinteraktionen zu unterschiedlichen Zeitpunkten sind in einer Sitzung enthalten, und eine Sitzungsklasse repräsentiert dies.

Anfrage

Anwendungsprogramme können die Datenbank unter Verwendung der Abfragesprache nach einem oder mehreren gespeicherten Elementen abfragen. Hibernate bietet eine Vielzahl von Ansätzen, einschließlich NamedQuery und Criteria API, um die Datenbanken abzufragen.

First-Level-Cache

Der Cache, der vom Hibernate Session-Objekt verwendet wird, das mit der Datenbank auf der ersten Ebene kommuniziert, wird First-Level-Cache genannt, auch bekannt als Sitzungs-Cache. Es ist für das Zwischenspeichern von Elementen in der aktuellen Sitzung verantwortlich. Jede Anfrage vom Session-Objekt an die Datenbank muss über den First-Level-Cache oder den Session-Cache laufen, bevor sie die Datenbank erreicht. Daher ist es wichtig zu beachten, dass der First-Level-Cache mit dem Sitzungsobjekt zugänglich bleibt, bis er nicht mehr aktiv ist.

Transaktionen

Transaktionen ermöglichen die Herstellung von Datenkonsistenz mit der Möglichkeit eines Rollbacks, wenn etwas schief geht.

Persistente Objekte

Persistente Objekte sind traditionelle Java-Objekte (POJOs), die vom Hibernate-Framework in der Datenbank als Zeilen in der verknüpften Tabelle gespeichert werden. Hibernate-Konfigurationsdateien konfigurieren diese Objekte entweder oder markieren sie mit der Annotation @Entity.

Cache der zweiten Ebene

Der Second-Level-Cache behält den Überblick über mehrere Sitzungen. Aktivieren Sie den Cache-Anbieter und geben Sie ihn an, um den Second-Level-Cache zu verwenden. Beispielsweise ist EhCache in vielen Anwendungen ein beliebter Second-Level-Cache-Anbieter.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Erkunden Sie unsere beliebten Softwareentwicklungskurse

Master of Science in Informatik von LJMU & IIITB Caltech CTME Cybersecurity-Zertifikatsprogramm
Full-Stack-Entwicklungs-Bootcamp PG-Programm in Blockchain
Executive PG-Programm in der Full-Stack-Entwicklung
Sehen Sie sich unten alle unsere Kurse an
Software-Engineering-Kurse

Hauptmerkmale des Hibernate-Frameworks

Hibernate ist ein Java-Framework für die Zuordnung von Domänenobjekten, das zur Verwaltung von Datenbanktabellen entwickelt wurde. Das Framework vereinfacht die Arbeit an Datenbankelementen mithilfe von Java-Objekten anstelle von SQL-Anweisungen. Darüber hinaus tragen das Transaktionsmanagement, die automatisierte Erstellung von Primärschlüsseln, die Verwaltung von Datenbankverbindungen und die damit verbundenen Implementierungen zum Entwicklungsprozess bei.

Der Java Persistence API (JPA)-Standard wird vom JPA-Anbieter Hibernate unterstützt. Es ist eine Sammlung von Standards für den Zugriff auf, die Speicherung und die Verwaltung von Daten. Man kann den Vorteil von Java-Objekten weiter nutzen und sie mit den Entitäten der relationalen Datenbank verbinden, um eine vollständige JPA-Unterstützung sicherzustellen.

Leistungsstark und skalierbar

Obwohl Hibernate in jeder Umgebung wachsen kann, bietet es eine breite Palette von leistungssteigernden Funktionen wie optimistisches Sperren, verzögerte Initialisierung und mehrere andere Techniken.

Einfach mitzuhalten

Da Hibernate keine benutzerdefinierten Datenbankstrukturen oder -attribute benötigt, kann die Verwaltung schwierig werden. Es erstellt SQL während des Systemstarts. Im Vergleich zu JDBC ist es jedoch einfacher zu warten.

Klassen wie AnnotationConfiguration, ServiceRegistryBuilder und andere wurden in früheren Hibernate-Versionen schnell als veraltet markiert.

Gefragte Fähigkeiten in der Softwareentwicklung

JavaScript-Kurse Core-Java-Kurse Kurse zu Datenstrukturen
Node.js-Kurse SQL-Kurse Full-Stack-Entwicklungskurse
NFT-Kurse DevOps-Kurse Big-Data-Kurse
React.js-Kurse Cyber-Sicherheitskurse Cloud-Computing-Kurse
Datenbankdesign-Kurse Python-Kurse Kryptowährungskurse

Die Konzepte von Entitäten, Gleichheit und Identität

Hibernate bietet zusätzliche Konzepte zum Vergleichen von Objekten oder Merkmalen, um präzise Geschäftsregeln zu erfüllen. Neben dem bereits vorhandenen Wissen über die Überprüfung von Gleichheiten im Java-Kern sind Hibernate-Konzepte ebenso wichtig für die Abbildung.

1. Assoziationsabbildungen zwischen Hibernate-Einheiten

Wenn zwei Entitäten verbunden sind und auf eine unidirektionale oder bidirektionale Weise verwiesen wird, verwenden Sie JPA-Annotationen, um die Java-Klassen zu kommentieren und sie in permanente Entitäten umzuwandeln. Zunächst ist es jedoch entscheidend, einige grundlegende Konzepte zu verstehen, bevor Sie Referenzen zwischen Hibernate-Entitäten erstellen.

2. Entität/Persistenz sind zwei verschiedene Dinge

Eine Hibernate-abgebildete Objektinstanz trägt einen von vier Zuständen: vorübergehend, permanent, getrennt oder gelöscht, abhängig von dem fraglichen Objektinstanzzustand.

3. Kaskadentypen in Hibernate und JPA

Die Eigenschaft „CascadeType“ wird in Entitäten verwendet, um Kaskaden- und Umkehreffekte zu ermöglichen. Es gibt mehrere Arten von Kaskadierungsoptionen, auf die über CascadeType zugegriffen werden kann.

Lesen Sie unsere beliebten Artikel zur Softwareentwicklung

Wie implementiert man Datenabstraktion in Java? Was ist die innere Klasse in Java? Java-Identifikatoren: Definition, Syntax und Beispiele
Verstehen der Kapselung in OOPS mit Beispielen Befehlszeilenargumente in C erklärt Top 10 Merkmale und Merkmale von Cloud Computing im Jahr 2022
Polymorphismus in Java: Konzepte, Typen, Eigenschaften und Beispiele Pakete in Java und wie man sie benutzt? Git-Tutorial für Anfänger: Lernen Sie Git von Grund auf neu

Vorteile von Hibernate Annotations gegenüber Mappings

Vor Inline-Annotationen waren XML-Dateien die einzige Methode zum Erstellen von Hibernate-Mappings. Obwohl verschiedene Tools von Hibernate und Projekten von Drittanbietern die automatische Erstellung von Mappings aus der Java-Quelle ermöglichten, war dies nicht der Fall.

Anmerkungen sind die aktuellsten definierten Zuordnungen, aber nicht die effektivsten.

Hier sind einige Vorteile von Hibernate-Anmerkungen (oder genauer gesagt JPA-Anmerkungen).

Hibernate Query Language [HQL] ist eine Abfragesprache für Hibernate

HQL hat Ähnlichkeiten mit der objektorientierten Abfragesprache SQL. Sein Betrieb auf permanenten Objekten statt auf Tabellen und Spalten weist die Funktionalität einer mächtigen Abfragesprache auf.

JPQL oder Java Persistence Query Language ist eine Obermenge. Daher gilt eine gültige JPQL-Abfrage als gute HQL-Abfrage. Allerdings sind nicht alle gültigen HQL-Abfragen gültige JPQL-Abfragen und umgekehrt.

Abfragen für Hibernate-Kriterien

Mit der Criteria Query API ist es möglich, verschachtelte, strukturierte Abfrageausdrücke in Java zu erstellen, was eine Syntaxüberprüfung zur Kompilierzeit ermöglicht, die mit einer Abfragesprache wie HQL oder SQL nicht erreichbar ist. Neben der Abfrage durch Beispiel (QBE)-Funktionalität enthält die Kriterien-API weitere Funktionen.

Wenn Sie beispielsweise Objektinstanzen bereitstellen, die die gewünschten Eigenschaften besitzen, anstatt Komponenten Ihrer Suche Schritt für Schritt zu erklären, können Sie Zeit und Mühe sparen. Es enthält auch Techniken zur Projektion und Aggregation, wie z. B. die Zählmethode ().

Konfiguration des Hibernate EhCache

Die von ORM-Frameworks bereitgestellte Caching-Funktion ermöglicht Benutzern eine schnell laufende Webanwendung, während das Framework die Abfragen in der Datenbank für eine einzelne Transaktion verringern kann. Caching ist hilfreich für Benutzer und das Framework. Hibernate erweitert das Caching sowohl auf der ersten als auch auf der zweiten Ebene der Hierarchie.

Fazit

Die Hibernate-Software gilt als hochfunktionales Framework für alles rund um Java. In diesem Hibernate-Tutorial haben wir die Grundlagen der Verwendung von Hibernate behandelt.

Wenn Sie sich eingehend mit dem Hibernate-Framework vertraut machen und den grundlegenden End-to-End-Anwendungsfluss verstehen möchten, der sich aus der Integration mit dem Spring 3-Framework ergibt, empfehlen wir Ihnen, am Executive PG-Programm von upGrad in Full Stack Development teilzunehmen .

Der 13-monatige Kurs richtet sich an Softwareentwickler, IT-Experten, Ingenieure, Analysten, technische Support-Experten und Studienanfänger, die eine Grundlage in den Grundlagen der Informatik, der Softwareentwicklung, dem Erstellen skalierbarer Websites, Backend-APIs usw. entwickeln möchten.

Das Programm umfasst über 10 Programmiertools und -sprachen, über 7 Fallstudien und Projekte, Bootcamps und Zugang zu Data Science & Machine Learning.

Warte nicht. Buchen Sie noch heute Ihren Platz!

Wie erstelle ich eine SessionFactory im Hibernate-Framework?

Jede Benutzeranwendung kann ein Sitzungsobjekt anfordern, indem sie sich an Session Factory wendet. Die Sitzungsfabrik verwendet die Konfigurationsinformationen aus Dateien, um das Sitzungsobjekt ordnungsgemäß zu erstellen.

Wie konfiguriere ich Hibernate Connection Pooling und Caching?

Hibernate verwendet standardmäßig JDBC-Verbindungen, um mit einem Datenbanksystem zu kommunizieren. Das Erstellen dieser Verbindungen ist jedoch zeitaufwändig, kostspielig und wahrscheinlich die teuerste Einzelaktivität, die Hibernate in einem typischen Anwendungsszenario durchführen wird. Angesichts der hohen Kosten der JDBC-Verbindungsverwaltung können Sie den Verbindungspool verwenden, der Beziehungen im Voraus aufbaut.

Was ist eine persistente Klasse in Java?

Jede Klasse, die sich an objektorientierte Konzepte wie Vererbung und Polymorphismus hält, kann eine persistente Klasse in einer Java-Anwendung sein.