Zum Hauptinhalt springen

Org-Verbindung.hibernate: ein vollständiger Leitfaden für den Entwickler

Wenn Sie eine Java-Anwendung entwickeln und eine Datenbank zum Speichern von Daten verwenden möchten, haben Sie sich wahrscheinlich Gedanken darüber gemacht, wie Sie die Arbeit mit der Datenbank vereinfachen können. Eines der beliebtesten Tools für die Arbeit mit Datenbanken in Java ist Hibernate. Mit Hibernate können Entwickler die Arbeit mit Datenbanken vereinfachen, indem sie ein objektrelationales Mapping (ORM) bereitstellen.

Bevor Sie jedoch mit der Verwendung von Hibernate beginnen, müssen Sie die ORG-Bibliothek ordnungsgemäß verbinden.hibernate zu Ihrem Projekt. In diesem vollständigen Handbuch werden wir alle Schritte untersuchen, die erforderlich sind, um Hibernate erfolgreich zu verbinden, vom Herunterladen und Installieren der Bibliothek bis zum Einrichten der Projektkonfiguration.

Bevor Sie beginnen, müssen Sie sicherstellen, dass Sie die neueste Version des Java Development Kit (JDK) installiert haben und dass Ihre Entwicklungsumgebung für die Verwendung der Maven- oder Gradle-Bibliotheken bereit ist. Wenn Sie Probleme mit der Konfiguration Ihrer Entwicklungsumgebung haben, sollten Sie sich an die Dokumentation oder die Community wenden, um weitere Unterstützung zu erhalten.

Nachdem Sie die Entwicklungsumgebung vorbereitet haben, können Sie mit dem Hinzufügen einer Hibernate-Abhängigkeit zu Ihrem Projekt fortfahren. Sie müssen die richtigen Abhängigkeitskoordinaten in Ihrer Build-Datei des Projekts angeben, damit Maven oder Gradle die Bibliothek aus dem Repository laden können. Danach können Sie mit der Konfiguration von Hibernate fortfahren und mit der Verwendung in Ihrem Projekt beginnen.

Grundlagen der Arbeit mit org.hibernate

Ein großer Vorteil der Arbeit mit org.hibernate ist, dass es Entwicklern ein praktisches und leistungsfähiges Werkzeug für die Arbeit mit Datenbanken bietet. Es vereinfacht das Erstellen, Ändern und Löschen von Datensätzen in einer Datenbank und macht die Arbeit mit objektrelationaler Zuordnung (ORM) viel effizienter.

Eines der wichtigsten Konzepte, die bei der Arbeit mit org verstanden werden müssen.hibernate, ist eine Entität (entity). Eine Entität ist eine Java-Klasse, bei der es sich um eine in einer Datenbank gespeicherte Datenstruktur handelt. Es enthält Felder und Methoden, die entsprechend den Spalten und Vorgängen der Datenbank angezeigt werden.

Einer der Hauptvorteile der Arbeit mit org.hibernate ist die automatische Generierung von SQL-Abfragen zum Erstellen und Ändern von Tabellen in einer Datenbank. Es genügt, Entitäten als Java-Klassen mit org-Annotationen zu beschreiben.hibernate. Es ermöglicht Ihnen, ein Datenbankschema zu erstellen und zu ändern, ohne SQL-Abfragen manuell schreiben zu müssen.

Ein weiterer wichtiger Aspekt der Arbeit mit org.hibernate ist die Verwendung von Sitzungen (sessions), um mit einer Datenbank zu arbeiten. Eine Sitzung stellt den Status der Interaktion zwischen einer Anwendung und einer Datenbank dar. Es bietet Methoden zum Speichern, Ändern und Löschen von Daten sowie zum Ausführen von Datenbankabfragen und zum Abrufen von Ergebnissen.

Eine der grundlegenden Operationen, die Sie beim Arbeiten mit org ausführen können müssen.hibernate, ist das Speichern von Daten in einer Datenbank. Erstellen Sie dazu ein Entitätsobjekt, füllen Sie die Felder aus und rufen Sie die Sitzungsspeichermethode auf. Danach werden die Daten in der Datenbank gespeichert und erhalten ihre eindeutige ID.

Allerdings org.hibernate ist nicht nur auf grundlegende Datenbankoperationen beschränkt. Es bietet viele Möglichkeiten für komplexere Aufgaben wie entitätsübergreifende Beziehungen, Datencache, Abfrageoptimierung und andere. Dies ermöglicht es Entwicklern, skalierbarere und effizientere Anwendungen zu erstellen.

Insgesamt arbeiten Sie mit org.hibernate ist ein unverzichtbares Werkzeug für Entwickler, die mit Datenbanken arbeiten. Es ermöglicht Ihnen, die Interaktion mit der Datenbank zu vereinfachen, die Leistung zu verbessern und eine skalierbarere Anwendung zu erstellen.

Installation und Konfiguration

Führen Sie die folgenden Schritte aus, um mit der Hibernate-Bibliothek zu beginnen:

Schritt 1: Laden Sie die neueste Version von Hibernate von der offiziellen Website herunter. Entpacken Sie die heruntergeladene Datei.

Schritt 2: Fügen Sie Ihrem Projekt die erforderlichen Hibernate-Bibliotheken hinzu. Beachten Sie die Version der Bibliothek und die Kompatibilität mit Ihrem System.

Schritt 3: Konfigurieren Sie die Hibernate-Konfigurationsdatei. Öffnen Sie es in einem Texteditor und geben Sie die Verbindungseinstellungen für die Datenbank an (URL, Login, Passwort).

Schritt 4: Erstellen Sie Entitätsklassen, die die Tabellen in der Datenbank darstellen. Fügen Sie Klassen und Felder mit Hibernate-Annotationen hinzu, um eine Übereinstimmung zwischen Klassen und Tabellen anzugeben.

Schritt 5: Schreiben Sie Code, um die Hibernate Session Factory zu installieren und zu konfigurieren. Eine Sitzung ist eine Interaktion mit einer Datenbank und führt CRUD-Operationen (Create, Read, Update, Delete) für Entitätsobjekte aus.

Schritt 6: Jetzt können Sie Hibernate verwenden, um mit der Datenbank zu arbeiten. Erstellen, speichern, aktualisieren und löschen Sie Entitätsobjekte mithilfe einer Hibernate-Sitzung.

Wenn Sie diese Schritte befolgen, können Sie Hibernate erfolgreich für die Entwicklung Ihrer Anwendung installieren und konfigurieren.

Entitäten erstellen und mappen

Zum Erstellen von Entitäten müssen Sie Klassen definieren, die mit speziellen Hibernate-Anmerkungen versehen sind. Zum Beispiel eine Annotation @Entity gibt an, dass die Klasse eine Entität ist.

Wie Klassen haben Entitäten auch Felder. Wenn Sie Felder mit einer Datenbank verknüpfen möchten, können Sie verschiedene Anmerkungen verwenden. Zum Beispiel wird eine Annotation verwendet, um einen Primärschlüssel anzugeben @Id und um die Beziehung zwischen Entitäten anzugeben, verwenden Sie eine Annotation @ManyToOne oder @OneToMany usw.

Beim Mappen von Entitäten müssen Sie jedoch die Besonderheiten der Datenbank berücksichtigen und die entsprechenden Anmerkungen und Einstellungen verwenden. Sie können beispielsweise eine Annotation verwenden, um eine Tabelle mit bestimmten Spalten zu erstellen @Table mit der Definition des Tabellennamens und anderen Parametern.

Nachdem Sie die Entitätsklassen und ihre Felder mit Anmerkungen definiert haben, müssen Sie Hibernate so konfigurieren, dass sie mit diesen arbeiten. Dazu können Sie die Hibernate-Konfigurationsdatei verwenden.cfg.xml, das die Datenbankverbindungsparameter sowie das Mappen von Klassen angibt.

Nachdem Sie Entitäten erstellt und Hibernate konfiguriert haben, können Sie sie im Anwendungscode verwenden. Sie können beispielsweise neue Entitätsobjekte erstellen, deren Felder ausfüllen und mithilfe der Hibernate-API in einer Datenbank speichern.

Daher ist das Erstellen und Mappen von Entitäten ein wichtiger Schritt bei der Verwendung von Hibernate, da sie den Zugriff auf Daten in der Datenbank ermöglichen und die Arbeit mit Daten im objektorientierten Stil erleichtern.

Arbeiten mit Sitzungen und Transaktionen

Eine Sitzung in Hibernate ist ein Vermittler zwischen Java-Objekten und einer Datenbank. Es zeigt eine langfristige Datenbankverbindung an und stellt Methoden zum Speichern, Aktualisieren, Löschen und Abrufen von Daten bereit.

Transaktionen in Hibernate gewährleisten die Datenintegrität und ermöglichen die Durchführung von Gruppenoperationen, die atomar ausgeführt werden müssen. Wenn Sie beispielsweise mehrere Datensätze in einer Datenbank gleichzeitig bearbeiten möchten, können Sie eine Transaktion starten, alle erforderlichen Änderungen vornehmen und anwenden und dann die Transaktion abschließen. Wenn während der Ausführung einer Transaktion ein Fehler auftritt, können alle Änderungen rückgängig gemacht werden.

Einer der ersten Schritte bei der Arbeit mit Sitzungen und Transaktionen in Hibernate besteht darin, eine Sitzungsfactory zu erstellen. Eine Sitzungsfabrik ist ein Objekt, das Sitzungsinstanzen erstellt und speichert. Es bietet auch eine Möglichkeit, Transaktionen zu erstellen.

Nachdem Sie eine Sitzungsfactory erstellt haben, können Sie Sitzungen mit der openSession() -Methode erstellen. Alle Datenbankvorgänge müssen innerhalb einer Sitzung ausgeführt werden, andernfalls werden sie nicht in der Datenbank gespeichert.

Um eine Transaktion zu starten, wird die BeginTransaction() -Methode für das Sitzungsobjekt aufgerufen. Sie können dann alle erforderlichen Datenbankoperationen ausführen, die Änderungen speichern und die Transaktion mit der commit() -Methode schließen. Wenn während der Ausführung von Datenbankvorgängen ein Fehler auftritt, können Sie die rollback() -Methode aufrufen, um alle Änderungen rückgängig zu machen und die Transaktion abzubrechen.

Es ist wichtig zu beachten, dass jede Sitzung und jede Transaktion nach der Verwendung geschlossen werden müssen. Dies kann mit der close() -Methode erfolgen. Beim Schließen der Sitzung werden alle temporären Daten gelöscht.

Sitzung öffnen und schließen

Sie müssen die Sitzungsfabrik verwenden, um eine Sitzung zu öffnen. Die Session Factory wird einmal beim Starten der Anwendung erstellt und stellt Sitzungen bereit, die Datenbankoperationen ausführen können.

Wenn eine Sitzung geöffnet ist, können Sie verschiedene Vorgänge ausführen, z. B. Hinzufügen, Ändern und Löschen von Objekten aus der Datenbank. Sie können auch Abfragen zum Abrufen von Daten mithilfe von HQL oder Kriterien ausführen.

Nachdem Sie die Sitzung beendet haben, muss sie geschlossen werden. Durch das Schließen der Sitzung werden Ressourcen freigesetzt und die Verbindung zur Datenbank beendet.

Es ist wichtig zu beachten, dass Sitzungen in einer gut gestalteten Anwendung nur für kurze Zeit geöffnet werden sollten, um Leistungsprobleme und Ressourcenlecks zu vermeiden. Sie müssen bei der Verwendung von Sitzungen vorsichtig sein und diese so schnell wie möglich schließen, nachdem die Arbeit beendet ist.

Beispiel für das Öffnen und Schließen einer Sitzung:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

// führen Sie Datenbankoperationen aus

Das Öffnen und Schließen einer Sitzung ist ein wichtiger Schritt in der Arbeit mit Hibernate. Die korrekte Verwendung von Sitzungen hilft Ihnen, die Leistung Ihrer Anwendung zu verbessern und Probleme mit Ressourcenlecks zu vermeiden.

Transaktionssteuerung

In Hibernate werden Transaktionen mit einem Session-Objekt verwaltet. Um eine neue Transaktion zu starten, müssen Sie die BeginTransaction() -Methode für das Session-Objekt aufrufen.

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();try catch (Exception e) finally 

Im folgenden Beispiel werden Objektvorgänge innerhalb derselben Transaktion ausgeführt. Wenn eine Ausnahme auftritt, wird die Transaktion zurückgesetzt, und alle innerhalb der Transaktion vorgenommenen Änderungen werden rückgängig gemacht.

Es ist auch wichtig zu beachten, dass die Sitzung nach der Ausführung der Operationen geschlossen werden muss. Dies ist besonders wichtig, wenn Sie Hibernate in Webanwendungen verwenden, um Ressourcenlecks zu vermeiden.

Zusätzlich zu den BeginTransaction() -, commit()- und rollback() -Methoden stellt das Transaction-Objekt eine Reihe anderer Methoden zum Verwalten von Transaktionen bereit, z. B. setReadOnly() zum Festlegen des schreibgeschützten Modus und setPropagationBehavior() zum Festlegen des Transaktionsverteilungs-Modus.

Das Transaktionsmanagement ist ein wichtiger Teil der Entwicklung mit Hibernate und trägt dazu bei, die Zuverlässigkeit und Integrität der Daten in der Datenbank zu gewährleisten. Wenn Sie die grundlegenden Prinzipien kennen und geeignete Methoden verwenden, können Sie effizient mit Transaktionen in Hibernate arbeiten.

Arbeiten mit Abfragen und Kriterien

Die HQL-Sprache ist eine objektorientierte Erweiterung von Standard-SQL. Sie können Abfragen für die Datenbank mithilfe von Entitätsobjekten und -attributen anstelle von Tabellen und Feldern ausführen. HQL bietet Flexibilität und Benutzerfreundlichkeit bei der Arbeit mit Abfragen.

SQL-Abfragen ermöglichen die Verwendung von Standard-SQL zum Ausführen von Datenbankabfragen. In Hibernate ermöglichen SQL-Abfragen eine bessere Kontrolle über die Abfrage und die Ausführungsleistung, da sie direkt auf dem DBMS ausgeführt werden.

Mithilfe von Kriterien können Sie Abfragen mithilfe von Kriterienobjekten erstellen, anstatt explizit SQL- oder HQL-Abfragen zu schreiben. Kriterien stellen eine typsichere und lesbare Methode zum Erstellen von Abfragen und Bedingungen dar.

Mit nativen Abfragen können Sie datenbankspezifische SQL-Abfragen direkt ausführen. Native Abfragen sind besonders nützlich, wenn Sie komplexe Abfragen ausführen oder spezifische Datenbankfunktionen oder -syntax verwenden möchten.

Alle diese Funktionen von Hibernate ermöglichen es Entwicklern, je nach den spezifischen Bedingungen und Anforderungen des Projekts die am besten geeignete und bequemste Methode zum Arbeiten mit Abfragen auszuwählen.

Verwenden von HQL

HQL bietet eine bequeme und ausdrucksstarke Möglichkeit, Datenbankabfragen mithilfe von Hibernate-Entitätsobjekten und -eigenschaften durchzuführen.

Verwenden Sie das from-Schlüsselwort, gefolgt vom vollständigen Namen der Entitätsklasse, um eine Abfrage in HQL zu erstellen. Zum Beispiel:

String queryString = "from User";Query query = session.createQuery(queryString);List users = query.list();

Hier erstellen wir eine Abfrage, die alle Objekte der User-Klasse aus der Datenbank auswählt.

In HQL können Sie Bedingungen verwenden, um bestimmte Datensätze auszuwählen. Wenn Sie beispielsweise Benutzer mit einem bestimmten Namen auswählen möchten, können Sie die folgende Abfrage schreiben:

String queryString = "from User where name = :name";Query query = session.createQuery(queryString);query.setParameter("name", "John");List users = query.list();

In diesem Fall verwenden wir den Parameter :name , um den Wert des Namens an die Abfrage zu übergeben. Auf diese Weise können Sie eine generische Abfrage schreiben, mit der Benutzer nach verschiedenen Namen suchen können.

In HQL können Sie auch Sortieroperatoren verwenden, um das Resultset zu sortieren. Wenn Sie beispielsweise Benutzer in aufsteigender Reihenfolge nach ihren Namen sortieren möchten, können Sie die folgende Abfrage schreiben:

String queryString = "from User order by name asc";Query query = session.createQuery(queryString);List users = query.list();

In diesem Fall werden die Benutzer in aufsteigender Reihenfolge nach ihren Namen sortiert.

HQL unterstützt auch Aggregatfunktionen wie count , sum , avg , max , min . Sie können beispielsweise die folgende Abfrage verwenden, um die Anzahl der Benutzer in einer Datenbank zu berechnen:

String queryString = "select count(*) from User";Query query = session.createQuery(queryString);Long count = (Long) query.uniqueResult();

In diesem Fall verwenden wir die Funktion count, um die Anzahl der Datensätze in der Tabelle User zu zählen.

Die Verwendung von HQL ermöglicht es Entwicklern, mit einem objektorientierten Ansatz flexibler und bequemer mit der Datenbank zu arbeiten. HQL bietet umfangreiche Möglichkeiten zum Erstellen verschiedener Abfragen und Ändern von Daten in Hibernate.

Kriterien verwenden

Um Kriterien zu verwenden, müssen Sie eine Instanz der Criteria-Klasse erstellen. Anschließend können Sie der Abfrage Bedingungen und Einschränkungen hinzufügen, indem Sie die Eigenschaften und Werte des Objekts angeben.

Wenn Sie beispielsweise alle Objekte mit einem bestimmten Eigenschaftswert abfragen möchten, können Sie die add-Methode verwenden :

session.createCriteria(Employee.class) .add(Restrictions.eq("department", department)) .list();

Im obigen Beispiel wird ein Kriterium für die Employee-Klasse erstellt, und durch add wird eine Einschränkung für die department-Eigenschaft hinzugefügt, deren Wert gleich der department-Variable sein muss.

Mit Kriterien können Sie auch Bedingungen mithilfe von Vergleichsoperatoren, logischen Operatoren und Funktionen hinzufügen. Wenn Sie beispielsweise alle Objekte abrufen möchten, deren age-Eigenschaft kleiner als 30 ist, können Sie diesen Code verwenden:

session.createCriteria(Employee.class) .add(Restrictions.lt("age", 30)) .list();

Die Kriterien in Hibernate bieten umfangreiche Möglichkeiten zum Erstellen komplexer Abfragen unter Verwendung verschiedener Bedingungen und Einschränkungen. Sie ermöglichen auch das Arbeiten mit Zuordnungen zwischen Klassen und das Ausführen anderer Operationen, z. B. das Sortieren und Gruppieren von Ergebnissen.

Die Verwendung von Kriterien kann eine bequeme Möglichkeit sein, Abfragen in Hibernate zu erstellen, insbesondere wenn Sie Abfragen dynamisch erstellen oder komplexe Bedingungen verwenden möchten. Für einfache Abfragen ist es jedoch besser, die HQL-Sprache oder die Kriterien zu verwenden.