Einführung in die Ruhezustandsarchitektur

Bevor wir uns mit der Architektur des Ruhezustands befassen, sollten wir uns ansehen, warum der Ruhezustand ins Spiel kam und welchen Zweck er für uns löst. Hibernate ist ein ORM-Tool (Object Relational Mapping) für eine Java-Programmiersprache zur Entwicklung einer objektbasierten datenbankunabhängigen Persistenzlogik. Der Ruhezustand bietet eine Abstraktionsebene zum Abrufen und Speichern von Daten in einer Datenbank.

Warum Winterschlaf halten?

JDBC (Java Database Connectivity) ist datenbankabhängig. Um genauer zu sein, hängt das Schreiben von Abfragen, die von Ihrer Anwendung mit JDBC ausgeführt werden sollen, davon ab, mit welcher Datenbank Sie arbeiten. Wenn Sie mit MySQL oder Oracle arbeiten, sind Ihre Abfragen anders. Wenn Sie also mitten in einem Projekt Ihre Datenbank ändern müssen, muss auch der Code geändert werden, und das wollen wir natürlich nicht. Der Ruhezustand verwendet eine datenbankunabhängige Ruhezustand-Abfragesprache. Kurz gesagt, der Ruhezustand erledigt das meiste, was der Entwickler mit JDBC zu tun hatte, z. Öffnen einer Verbindung zum DB, Schließen von Verbindungen, Behandeln verschiedener Ausnahmen.

Kommen wir also zur Hibernate-Architektur, um besser zu verstehen, wie Hibernate die Datenpersistenz so viel einfacher gemacht hat.

Architektur im Ruhezustand

Das Hauptkonzept eines ORM besteht darin, das Schreiben datenbankspezifischer SQL-Abfragen durch das Manipulieren von Objekten zu ersetzen.

Um es in einfachen Worten auszudrücken:

  • Sie erstellen ein POJO (Plain Old Java Object)
  • Weisen Sie den Feldern mithilfe von Setzern Werte zu
  • Sagen Sie dem Ruhezustand, dass diese Objekte erhalten bleiben sollen

Hibernate ordnet Java-Klassen Datenbanktabellen zu (dies beinhaltet auch das Zuordnen der Java-Datentypen zu SQL-Datentypen).

Dadurch entfällt die mühsame Konvertierung der Java-Felder in SQL-unterstützte Datentypen. Hibernate erledigt das für Sie.

Es entlastet den Entwickler auch von den Schmerzen beim Umgang mit Ergebnismengen.

Java-Anwendung

Während wir die Persistenzlogik entwickeln, müssen wir die Unterstützung einiger Ressourcen in der Java-Anwendung in Anspruch nehmen. Sehen wir uns diese Ressourcen an.

Das Herzstück jeder Hibernate-Anwendung liegt in ihrer Konfiguration.

  • Konfigurationsdatei
  • Zuordnungsdatei

Ruhezustand-Konfigurationsdatei

Wir definieren die Eigenschaften, die dem Ruhezustand mitteilen, mit welcher Datenbank er interagieren soll und welchen JDBC-Treiber er verwenden soll. Der Ruhezustand verwendet eine Konfigurationsdatei, um alle diese Informationen abzurufen.

Obwohl Hibernate Datenbankabfragen generieren kann, können wir den Dialekt angeben, um besseres SQL für die erforderliche Datenbank zu generieren.

Zum Beispiel sind im Folgenden die Eigenschaften aufgeführt, die Sie normalerweise in einer Spring-Boot-Anwendung festlegen

Zuordnungsdatei für Ruhezustand

Es enthält alle Klassenzuordnungsdefinitionen. Jedes ORM-Tool benötigt eine Zuordnungsdatei. Wir verwenden die folgenden Methoden, um Hibernate mitzuteilen, welcher Wert eines Objekts in welcher Spalte der Tabelle gespeichert werden muss.

  • XML
  • Anmerkungen

Syntax einer XML-Mapping-Datei im Frühjahr,

Im Folgenden wird beschrieben, wie Sie die Instanzvariable mit Anmerkungen versehen, die einer Spalte einer Zeile in der Datenbank zugeordnet werden soll.

Domänenklasse

Wie wir wissen, ist Hibernate für die Entwicklung objektbasierter Persistenzlogik bekannt. Eine Domänenklasse ist also ein POJO, das einer Tabelle in der Datenbank zugeordnet ist.

Aufbau

Um eine Verbindung zur Datenbank herzustellen, muss Hibernate die Details der Datenbank, Klassen und andere Details kennen. Ein Konfigurationsobjekt wird einmal beim Initialisieren einer Anwendung erstellt. Es ist hauptsächlich für das Bootstrappen des Ruhezustands auf die Anwendung verantwortlich. Ein Konfigurationsobjekt verwendet die Konfigurationsdatei und die Zuordnungsdatei für den Ruhezustand, um die folgenden Schritte auszuführen:

  • Laden Sie diese Dateien.
  • Überprüft, ob diese Dateien wohlgeformt und gültig sind.
  • Erstellt speicherinterne Metadaten dieser beiden Dateien.
  • Gibt ein Objekt zurück, das diese Metadaten enthält.

Session Factory

Eine Sitzungsfactory wird zum Erstellen von Sitzungsobjekten verwendet. Es wird vom Konfigurationsobjekt erstellt. Es bietet eine Abstraktionsebene, sodass wir uns keine Gedanken darüber machen müssen, wie das Sitzungsobjekt erstellt wird. Es ist eine thread-sichere globale Factory-Klasse zum Erstellen von Sitzungen. Über das Konfigurationsobjekt erhalten wir Zugriff auf die In-Memory-Daten, die aus der Konfigurations- und Zuordnungsdatei erstellt wurden.

Von dort werden die JDBC-Eigenschaften (Treibername, Datenquellen-URL, Benutzername, Kennwort usw.) abgerufen. Mithilfe dieser Eigenschaften werden Verbindungsobjekte erstellt, die die Konnektivität zur Datenbank darstellen.

Mit diesen Verbindungen wird ein Verbindungspool erstellt. Alle Informationen aus dem Konfigurationsobjekt und dem Verbindungspool werden zum Erstellen und Zurückgeben eines Sitzungsobjekts verwendet. Daher ist ein Session Factory-Objekt ein Schwergewichtsobjekt. Jede Session Factory ist so konfiguriert, dass sie mit einer bestimmten Datenbank unter Verwendung eines der angegebenen Hibernate-Dialekte arbeitet.

Session

Zu beachten ist, dass es sich nicht um eine Servlet-Sitzung oder eine Java-Mail-Sitzung handelt. Eine Sitzung ist ein Tor zu unserer Datenbank. Es schafft eine Brücke von unserer Anwendung zur Datenbank. Es wird von der Session Factory erstellt. Es nimmt das Verbindungsobjekt und öffnet eine Verbindung / Sitzung zur Datenbank und ermöglicht der Anwendung, Persistenzoperationen an der Datenbank durchzuführen.

In einem ORM-Tool führen Sie alle Vorgänge wie INSERT, DELETE und UPDATE mit objektorientierter Semantik aus, dh, Sie verweisen nicht mehr auf Tabellen, Zeilen und Spalten. Es ist die Arbeit der Sitzungen, alle Persistenzoperationen für Sie durchzuführen.

Transaktion

Eine Transaktion ist ein kurzlebiges Objekt, das eine einzelne Arbeitseinheit darstellt, z. B. das Speichern oder Löschen eines Objekts in einer Tabelle in der Datenbank. Es abstrahiert die Anwendung von der zugrunde liegenden Transaktion, die mithilfe von JDBC, JTA (Java Transaction API) usw. ausgeführt wird.

Aktivieren Sie den Ruhezustand intern mithilfe von JDBC, JTA, JNDI (Java Naming and Directory Interface), um SQL-Abfragen für die konfigurierte Datenbank zu generieren.

Fazit

In diesem Artikel wurde untersucht, wie die Schichtenarchitektur des Ruhezustands einem Programmierer hilft, mit einer Datenbank zu arbeiten, ohne die Details der zugrunde liegenden API wie JDBC, JTA und JNDI kennen zu müssen. Wir haben gelernt, wie Hibernate unser Leben erleichtert, indem es den Großteil des Kesselschild-Codes wie das Öffnen / Schließen der Verbindung zur Datenbank handhabt. Hoffentlich erhalten Sie dadurch ein klares Verständnis der Ruhezustandsarchitektur, mit der Sie die Arbeit mit dem Ruhezustands-Framework in Ihren Anwendungen aufnehmen können.

Empfohlene Artikel

Dies ist eine Anleitung zur Architektur im Ruhezustand. Hier diskutieren wir die Schichtenarchitektur des Ruhezustands zusammen mit der Java-Anwendung. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Was ist der Ruhezustand?
  2. Ruhezustand-Framework
  3. Fragen in Vorstellungsgesprächen bei Hibernate
  4. Was ist Java Hibernate?