Was ist der Ruhezustand?
Offiziell als Hibernate ORM bekannt, ist es ein objektrelationales Mapping-Tool oder Framework für die Programmiersprache Java. Es ist die freie Software unter GNU Lesser General Public License 2.1. Es soll dem Benutzer das Framework zur Verfügung stellen, um die objektrelationale Impedanzabbildung zu handhaben. Es verwaltet auch dauerhafte Datenbankzugriffe mit sehr umfangreichen Objektbehandlungsfunktionen. Es handelt sich um ein Java-Middleware-Framework, das zur objektrelationalen Zuordnung und zur Ausführung einer effizienten Objektpersistenz verwendet wird.
Die Architektur
Um mehr über den Ruhezustand zu erfahren, müssen wir seine Architektur verstehen, die Folgendes umfasst:
- Ein Java-Anwendungscode besteht aus allen Klassen, Variablen und Objekten, die die Geschäftslogik der Anwendung definieren. Diese Klassen kommunizieren mit dem Ruhezustand.
- Dann kommen der Ruhezustand und seine Kernprinzipien, mit denen wir die Objekte unserer Business-Layer-Klassen durch Kommunikation mit dem Datenbankserver-Layer beibehalten (speichern oder speichern und abrufen) können.
- Es verwendet die Java-Kern-API, die Java-Datenbankkonnektivität (JDBC), die Java-Transaktions-API (JTA), die Java-Benennung und die Verzeichnisschnittstelle (JNDI) für die Kommunikation mit der Datenbank, um den Status eines Objekts durch Lesen, Erstellen und Aktualisieren beizubehalten, lösche (CRUD) Operationen.
Es wird im Wesentlichen für die Kommunikation mit der Datenbank verwendet. Hier erstellen wir nur einige Entitäten, die nichts anderes als eine Java-Klasse sind, die eine Datenbanktabelle für uns in der Datenbank erstellt.
Rahmen
Hier stoßen wir auf die Frage, warum wir das Hibernate-Framework von Java verwenden, wenn wir bereits die Java-Kernprinzipien haben. Hier ist die Antwort darauf:
- Verwendete die besten JDBC-Konzepte wie:
- Rowset anstelle von ResultSet
- DataSource (Verbindungspooling) anstelle von DriverManager
- Batch-Operationen statt Einzeloperationen
- PreparedStatement anstelle von Statement
- Die Projektentwicklungskosten werden auf einen großen Faktor reduziert.
- Keine Speicherlecks
- Das Verwalten von Zuordnungen wie Eins-zu-Viele usw. ist im Vergleich zum Arbeiten mit Auflistungseigenschaften wie java.util.Set, List, Map einfach und problemlos.
- Als ORM-Framework hat der Hibernate alle Vorteile:
- Unterstützt Second Level Cache
- Das Objekt wird zu einer Aufzeichnung und umgekehrt.
- Unterstützt zusätzlich Object Query Language (HQL)
- Unterstützt mehrere Primärschlüsselgeneratoren
Funktionen von Hibernate
Es ging also nur um das Java-Hibernate-Framework und seine Architektur. Lassen Sie uns über die Funktionen des neuesten Hibernate-Stables sprechen, der vor 57 Tagen, dh am 23. Februar 2019, veröffentlicht wurde. Es wurde von der Red Hat-Software entwickelt und ist eine Plattform für virtuelle Maschinen mit vielen Funktionen:
- Es unterstützt JMX und JCA.
- Es bietet eine Funktion der J2EE-Integration.
- Bei der Systeminitialisierung wird SQL generiert.
- Optional können Sie ein internes Verbindungspooling und ein vorbereitetes Anweisungscaching bereitstellen.
- Es unterstützt das optimistische Sperren mit der Versionierung.
- Es bietet Outer Join-Abruf.
- Es führt die Lazy-Initialisierung ein.
- Es bietet einen Cache auf Sitzungsebene und einen optionalen Cache auf zweiter Ebene.
- Es bietet Dual-Layer-Cache-Architektur.
- Automatische Generierung des Primärschlüssels.
- Es unterstützt das strenge Konzept der Verbundtasten.
- Es unterstützt das Konzept des abgetrennten Objekts.
- Es führt das automatische Dirty Checking-Konzept ein.
- Es bietet transparente Persistenz ohne Bytecode-Verarbeitung.
- Es stellt Objekt- / relationale Zuordnungen bereit. Hier sind verschiedene O / R-Zuordnungsstrategien als Mehrfachobjekte zur Einzelzeilenzuordnung aufgeführt.
- Polymorphe Assoziationen, bidirektionale Assoziationen, Assoziationsfilterung. Es werden auch XML-Zuordnungsdokumente bereitgestellt.
- Es bietet verschiedene objektorientierte Abfragesprachen.
- Minimale objektorientierte Hibernate-Abfragesprache (HQL), native SQL-Abfragen
- Hoher objektorientierter Kriterienbegriff.
Warum verwenden wir Hibernate?
Hier gab es die neuesten Features von Hibernate. Als nächstes kommt das Problem, warum wir es verwenden. Hier sind die Gründe, warum wir es vorziehen, den Ruhezustand zu verwenden:
- Transaktionsmanagement
- Verbände
- Erbe
- Caching im Ruhezustand
- Versionierung
- Audit-Funktionalität
- Unterstützung für JPA-Anmerkungen
- Verbindungspooling
- Vermeiden von Try-Catch-Blöcken
- Vermeiden Sie faules Laden
- Reduziert den Wiederholungscode
Vorteile
Informieren Sie sich über den Ruhezustand und besprechen Sie die wichtigsten Vor- und Nachteile des Ruhezustands. Beginnen wir mit den folgenden Vorteilen des Ruhezustands:
- ORM - Wartung ist einfach und kostengünstig.
- Transparente Persistenz
- Datenbank unabhängig
- HQL - Die erweiterten Funktionen von HQL wie Paginierung und dynamische Profilerstellung sind in SQL nicht vorhanden. So können wir es im Winterschlaf verwenden.
- Dual-Layer-Caching
- Version-Eigenschaft
- Open Source und freie Software
- Die Skalierbarkeit ist einfach
- Lazy-Loading - Beim Lazy-Loading-Konzept wird nur das für die Ausführung einer Anwendung erforderliche Objekt abgerufen.
- Leicht zu lernen
- Unterstützt auch Sammlungen wie List, Set, Map.
- Fähigkeit, Primärschlüssel zu generieren
- Hibernate stellte Dialektklassen zur Verfügung
- Es unterstützt Beziehungen wie Eins-zu-Viele, Eins-zu-Eins, Viele-zu-Viele-zu-Viele, Viele-zu-Eins
Nachteile
Mit den Vorteilen hat der Ruhezustand auch sehr viel weniger Nachteile. Also hier sind die Nachteile des Ruhezustands:
- etwas langsamer als reines JDBC
- Problem mit dem Kesselschildcode
- Generieren Sie viele SQL-Anweisungen zur Laufzeit
- Der Ruhezustand ist nicht für die Stapelverarbeitung geeignet
- Der Ruhezustand ist langsam, da die Laufzeitreflexion verwendet wird
- Viel API zu lernen
- Manchmal wird das Debuggen und Optimieren der Leistung schwierig.
- Nicht für kleine Projekte geeignet
- Ermöglicht nicht mehrere Einfügungen
- Erzeugt komplexe Anforderungen mit vielen Verknüpfungen
- HQL-Abfragen können kein PL / SQL-Programm aufrufen
Fazit
Wenn all diese Themen behandelt sind, müssen wir auch über die Zukunft des Ruhezustands Bescheid wissen. Wir können sagen, dass Hibernate noch viel länger das dominierende ORM-Tool sein wird, da JPA schnell aufholt. Mein Eindruck ist, dass Hibernate die am weitesten verbreitete Implementierung von JPA ist (vor OpenJPA und EclipseLink) und dass die native oder Kern-API immer noch leistungsfähiger als JPA 2 ist Zeit. Es ist sehr zu bevorzugen, Spring MVC im Ruhezustand zu verwenden, da es am besten mit MVC kompatibel ist. Die Verwendung eines Persistenz-Frameworks wie Hibernate ermöglicht Entwicklern, sich auf das Schreiben von Geschäftslogik-Code zu konzentrieren, anstatt eine genaue und gute Persistenz-Ebene zu schreiben, die das Schreiben von SQL-Abfragen, JDBC-Code, Verbindungsmanagement usw. umfasst Es ist das bekannteste Java-Framework, das heutzutage verwendet wird.
Empfohlene Artikel
Dies war ein Leitfaden für den Ruhezustand. Hier werden Architektur, Funktionen, Framework, Vor- und Nachteile des Ruhezustands erläutert. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -
- Fragen in Vorstellungsgesprächen bei Hibernate
- Was ist NumPy?
- Was ist ein offener Einkaufswagen?
- Fragen in Vorstellungsgesprächen bei Struts 2
- Java-Namenskonventionen