Einführung in Hibernate: Was es ist und warum man es braucht
\n\nHibernate ist eine leistungsstarke, hochperformante objektrelationale Bibliothek (ORM – Object-Relational Mapping) für die Programmiersprache Java. Sie löst das grundlegende Problem, das als „objektrelationale Impedanzfehlanpassung“ bekannt ist: In Java arbeiten wir mit Objekten und Klassen, während wir in relationalen Datenbanken mit Tabellen und Datensätzen arbeiten. Hibernate wandelt Java-Objekte automatisch in SQL-Abfragen um und umgekehrt, sodass sich der Entwickler auf die Geschäftslogik konzentrieren kann, anstatt Unmengen von gleichartigem JDBC-Code schreiben zu müssen.
\n\nWichtige Funktionen von Hibernate:
\n- \n
- Automatisierung von CRUD: Erstellen, Lesen, Aktualisieren und Löschen von Datenbankeinträgen erfolgt durch die Arbeit mit Java-Objekten. \n
- Abfragesprache HQL (Hibernate Query Language): Ein objektorientiertes Analogon zu SQL, das mit Klassennamen und deren Feldern arbeitet, anstatt mit Tabellen und Spalten. \n
- Cache-Verwaltung: Integrierte Mechanismen für First-Level- und Second-Level-Cache zur Leistungssteigerung. \n
- Lazy Loading: Laden von zugehörigen Daten erst im Moment ihrer tatsächlichen Verwendung. \n
- Datenbankschema-Generierung: Möglichkeit, Tabellen in der Datenbank basierend auf Annotationen in Java-Klassen automatisch zu erstellen oder zu aktualisieren. \n
- Transaktionsunterstützung: Vollständige Integration mit dem Java Transaction API (JTA) und lokalen JDBC-Transaktionen. \n
Hibernate ist der De-facto-Standard für die Arbeit mit relationalen Datenbanken im Java-Ökosystem. Es wird in einer Vielzahl von Projekten eingesetzt – von kleinen Webanwendungen bis hin zu Unternehmenssystemen auf Enterprise-Niveau.
\n\nInstallation von Hibernate
\n\nIm Gegensatz zu Python oder JavaScript gibt es in Java keinen einheitlichen Paketmanager wie pip oder npm. Hibernate wird über ein Build-System wie Maven oder Gradle in das Projekt eingebunden. Nachfolgend finden Sie Beispiele für beide Werkzeuge.
Installation über Maven (empfohlen)
\nFügen Sie die folgenden Abhängigkeiten zur pom.xml-Datei Ihres Projekts hinzu. Wir verwenden Hibernate 6.x (die zum Zeitpunkt der Erstellung aktuelle Version) und einen Treiber für PostgreSQL (Sie können diesen durch MySQL, H2 oder einen anderen ersetzen).
<dependencies>\n <!-- Hibernate-Kern -->\n <dependency>\n <groupId>org.hibernate.orm</groupId>\n <artifactId>hibernate-core</artifactId>\n <version>6.3.1.Final</version>\n </dependency>\n\n <!-- Treiber für PostgreSQL -->\n <dependency>\n <groupId>org.postgresql</groupId>\n <artifactId>postgresql</artifactId>\n <version>42.7.1</version>\n </dependency>\n\n <!-- Logging (optional, aber nützlich für die Fehlersuche) -->\n <dependency>\n <groupId>org.slf4j</groupId>\n <artifactId>slf4j-simple</artifactId>\n <version>2.0.9</version>\n </dependency>\n</dependencies>\n\nInstallation über Gradle
\nFügen Sie zur build.gradle-Datei hinzu:
dependencies {\n implementation 'org.hibernate.orm:hibernate-core:6.3.1.Final'\n implementation 'org.postgresql:postgresql:42.7.1'\n implementation 'org.slf4j:slf4j-simple:2.0.9'\n}\n\nNach dem Hinzufügen der Abhängigkeiten lädt Ihre IDE (IntelliJ IDEA, Eclipse) automatisch alle erforderlichen JAR-Dateien herunter.
\n\nSchnellstart mit einem Codebeispiel
\n\nLassen Sie uns eine einfache Anwendung erstellen, die ein User-Objekt in der Datenbank speichert und ausliest. Der Einfachheit halber verwenden wir die eingebettete H2-Datenbank, um keinen externen Server konfigurieren zu müssen.
Schritt 1: Konfigurationsdatei hibernate.cfg.xml
\nErstellen Sie im Ordner src/main/resources/