Kursinhalt
Spring Boot Backend
Spring Boot Backend
Arbeiten mit ORM: JPA und Hibernate
Wie Sie bereits wissen, ist Object-Relational Mapping (ORM) eine Technologie, die es Entwicklern ermöglicht, mit einer Datenbank auf Objektebene zu interagieren, anstatt über SQL-Abfragen.
Im Wesentlichen ist ORM ein Konzept, das es ermöglicht, ein Java-Objekt als Daten in einer Datenbank darzustellen (und umgekehrt). Es wird in Form der Java Persistence API (JPA) Spezifikation implementiert.
JPA
Beispiel aus dem echten Leben
Stellen Sie sich vor, dass JPA wie ein Standard für Steckdosen in verschiedenen Ländern ist. Dieser Standard definiert, wie eine Steckdose aussehen sollte und welche Spezifikationen sie erfüllen muss, damit Geräte daran angeschlossen werden können.
Der Standard selbst produziert jedoch nicht die Steckdosen. Um sie tatsächlich zu verwenden, benötigen Sie Hersteller, die diesen Standard implementieren. Sie erstellen die tatsächlichen Steckdosen, die damit übereinstimmen.
Hauptkomponenten der JPA
JPA-Komponenten sind Schlüsselelemente, die zusammenarbeiten, um Funktionalität für die Interaktion mit einer Datenbank bereitzustellen.
Wir werden diese Komponenten durch praxisnahe Beispiele erkunden, um Ihnen zu helfen, sie besser für die zukünftige Nutzung zu assoziieren.
Entität
Lassen Sie uns erinnern, was eine Entität ist. Eine Entität ist eine Klasse in Ihrem Code, die eine Tabelle in der Datenbank repräsentiert. Zum Beispiel beschreibt die User
-Klasse, welche benutzerbezogenen Daten wir speichern.
Stellen Sie es sich wie eine Visitenkarte vor. Die Karte enthält den Namen, den Berufstitel und die Kontaktinformationen einer Person. In JPA beschreibt eine Entity-Klasse alle wichtigen Merkmale eines Objekts, genau wie eine Visitenkarte eine Person beschreibt.
EntityManager
In JPA führt der EntityManager
Operationen wie Hinzufügen, Aktualisieren oder Löschen von Datensätzen durch und verwaltet all diese Aktionen.
EntityManager
ist verantwortlich für die Verwaltung des Lebenszyklus von Entitäten (Objekten) und deren Interaktion mit der Datenbank.
Hauptmethoden
So verwenden Sie EntityManager in Spring Boot
Persistenzkontext
Lebenszyklus von Entitäten
- Transient: Die Entität wurde gerade erstellt, aber noch nicht in der Datenbank gespeichert;
- Managed: Die Entität wurde in der Datenbank gespeichert und wird vom
EntityManager
verwaltet. Alle Änderungen daran werden automatisch verfolgt; - Detached: Die Entität wurde zuvor verwaltet, aber der Persistenzkontext wurde geschlossen oder der
EntityManager
wurde geleert. Änderungen in diesem Zustand werden nicht automatisch verfolgt; - Removed: Die Entität wurde zur Löschung aus der Datenbank markiert.
Wenn der EntityManager
eine Entität erstellt oder findet, platziert er diese Entität in den Persistenzkontext.
Alle Änderungen, die an der verwalteten Entität vorgenommen werden, werden automatisch verfolgt, und nach Abschluss der Transaktion werden diese Änderungen mit der Datenbank synchronisiert.
JPQL (Java Persistence Query Language)
In JPQL schreiben Sie Abfragen, um Daten in der Datenbank zu finden oder zu ändern, und zwar in einem objektorientierten Stil.
In JPQL arbeiten wir nicht direkt mit den Tabellen- und Spaltennamen. Stattdessen verweisen wir auf die Category
-Klasse und ihr title
-Feld, was die Abfrage für Java-Entwickler verständlicher macht. JPQL abstrahiert die zugrunde liegende Datenbankstruktur, sodass Sie sich auf das objektorientierte Modell konzentrieren können.
Hibernate
Zum Beispiel kann Hibernate
automatisch Datenbanktabellen basierend auf Ihren Entitäten (Klassen) erstellen und aktualisieren.
Hibernate integriert Caching-Mechanismen, die es ermöglichen, häufig verwendete Daten im Speicher zu speichern, wodurch die Anzahl der Anfragen an die Datenbank reduziert und die Anwendungsleistung beschleunigt wird.
1. Was ist JPA?
2. Welche Schnittstelle in JPA wird für Operationen an Entitäten verwendet?
Danke für Ihr Feedback!