Heim >Java >javaLernprogramm >Ausführliche Erläuterung der Grundprinzipien von Hibernate in Java

Ausführliche Erläuterung der Grundprinzipien von Hibernate in Java

黄舟
黄舟Original
2017-09-09 11:01:021586Durchsuche

Persistenz ist ein Mechanismus zum Konvertieren von Programmdaten zwischen persistenten und transienten Zuständen. JDBC ist ein Persistenzmechanismus. File IO ist auch ein Persistenzmechanismus. Dieser Artikel führt Sie in die Grundprinzipien von Hibernate in Java ein. Freunde, die es brauchen, können sich darauf beziehen

Bevor Sie anfangen, Hibernate zu lernen, haben einige Leute immer gesagt: Hibernate ist nicht schwierig, es ist nichts weiter als eine weitere Kapselung von JDBC. Es ist nicht schwierig. Ist es wirklich nicht schwierig, oder liegt es einfach an zu viel Ehrgeiz und zu wenig Können?

Wenn Sie einfach auf der Nutzungsebene bleiben, ist es meiner Meinung nach nicht schwierig, zu sehen, was andere tun, und Sie können schnell loslegen.

Ist das das ultimative Ziel des Lernens?

Nein, absolut nicht. Wir müssen die Grundkonzepte dieser Technologie verstehen, was sie ist, was sie leistet und welche Vor- und Nachteile sie hat. Jetzt werde ich Sie zur Rezension von Hibernate führen:

Was ist Hibernate?

Hibernate, übersetzt Winterschlaf, ist gerade in den Herbst eingetreten und alles auf der Welt beginnt, sich auf den Winterschlaf vorzubereiten. Tatsächlich handelt es sich bei Objekten um Beständigkeit. ​​

​Persistenz, d. h. das Speichern von Daten (z. B. Objekten im Speicher) auf einem Speichergerät (z. B. einer Festplatte), das dauerhaft gespeichert werden kann. Die Hauptanwendung der Persistenz besteht darin, Objekte in relationalen Datenbanken im Speicher zu speichern. Natürlich können sie auch in Festplattendateien, XML-Datendateien usw. gespeichert werden.

Persistenz ist ein Mechanismus zum Konvertieren von Programmdaten zwischen persistenten und transienten Zuständen.

JDBC ist ein Persistenzmechanismus. File IO ist auch ein Persistenzmechanismus.

Tägliche Persistenzmethode:

1 Die gleiche Methode wird verwendet, um frisches Fleisch zu kühlen und beim Verzehr aufzutauen.

2. Die gleiche Methode wird zur Herstellung von Obstkonserven verwendet.

Lassen Sie uns Hibernate aus drei Perspektiven verstehen:

1. Hibernate kapselt JDBC weiter

Es stellte sich heraus, dass es, wenn Hiberante nicht für die Entwicklung der Persistenzschicht verwendet wurde, viele Redundanzen gab, wie z. B. verschiedene JDBC-Anweisungen und Verbindungsverwaltung, sodass Hibernate JDBC kapselte und wir keine Daten manipulieren mussten Es.

Zweitens betrachten wir es aus einer mehrschichtigen Perspektive

Wir kennen die sehr typische dreistufige Architektur: Präsentationsschicht, Geschäftsschicht und Persistenzschicht . Hiberante ist auch ein Persistenzschicht-Framework, und es gibt viele Persistenzschicht-Frameworks, wie zum Beispiel: IBatis, Nhibernate, JDO, OJB, EJB usw.

3. Hibernate ist ein Open-Source-ORM-Framework (Object Relational Mapping).

ORM, das heißt objektrelationale Zuordnung, seine Funktion besteht darin, eine Zuordnung zwischen einer relationalen Datenbank und Objekten zu erstellen. Zuordnung vom Objekt zur Beziehung und dann von der Beziehung zum Objekt. Auf diese Weise müssen wir uns beim Betrieb der Datenbank nicht mehr mit komplexem SQL befassen, sondern müssen sie nur noch wie ein Objekt bedienen (die Felder der relationalen Datenbank den Eigenschaften des Objekts im Speicher zuordnen).

Der Kern von Hibernate:

Aus dem obigen Bild, wir kann Sehen Sie sich die sechs Kernschnittstellen von Hibernate, die beiden Hauptkonfigurationsdateien und ihre direkte Beziehung an. Alles über Hibernate finden Sie hier. Dann werfen wir einen kurzen Blick von oben nach unten darauf und fassen jede Schnittstelle in einem Satz zusammen.

1. Konfigurationsschnittstelle: verantwortlich für die Konfiguration und den Start von Hibernate

2. SessionFactory-Schnittstelle: verantwortlich für die Initialisierung von Hibernate

3. Sitzungsschnittstelle: verantwortlich für CRUD-Operationen von persistenten Objekten

4. Transaktionsschnittstelle: verantwortlich für Transaktionen

5. Abfrageschnittstelle und Kriterienschnittstelle: verantwortlich für die Ausführung verschiedener Datenbankabfragen

Hinweis: Die Konfigurationsinstanz ist ein Objekt Während des Startvorgangs wird es verworfen, sobald die SessionFactory erstellt wurde.

Vorteile/Nachteile von Hibernate:

Vorteile:

1. Mehr objektorientiert

Durch die Verwendung objektorientierten Denkens zum Betreiben der Datenbank müssen wir nur Objekte bedienen, und die Entwicklung ist objektorientierter.

2. Portabilität

Da Hibernate die Persistenzschicht kapselt, kennen Sie die Datenbank nicht und der gesamte Code, den Sie schreiben, ist wiederverwendbar.

3. Hibernate ist ein nicht-invasives Framework, das als Lightweight-Framework bezeichnet wird.

Vergleicht man Struts‘ Action und ActionForm, müssen beide vererbt werden und kommen nicht ohne Struts aus. Hibernate muss keine Klassen erben oder Schnittstellen implementieren. Solche Objekte werden POJO-Objekte genannt.

4. Das Testen des Hibernate-Codes ist praktisch.

5. Verbessern Sie die Effizienz und Produktivität.

Nachteile:

1. Anweisungen, die Datenbankfunktionen verwenden, sind schwierig zu optimieren

2. Es gibt Probleme mit großen Batch-Datenaktualisierungen Problem

3. Es gibt eine große Anzahl von Angriffsabfragefunktionen im System

Zusammenfassung:

Hibernate ermöglicht es uns Objektivierung verwenden Der Gedanke, eine relationale Datenbank zu betreiben.

Zusammenfassung

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Grundprinzipien von Hibernate in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn