Fassen Sie den Hibernate aus den folgenden Dutzend Aspekten hauptsächlich zusammen, einschließlich der Abrufmethode von Hibernate, dem Status des Objekts in Hibernate, was sind die drei Abrufstrategien von Hibernate, die die Anlässe anwendbar sind, das Problem, dass ORM löst Vererbungserbranz Die drei Beziehungsmethoden, die Zusammenfassung der Sitzungsmethode find () und der Unterschied zwischen der Abfrageschnittstelle usw. Der spezifische Inhalt lautet wie folgt:
1 Hibernate -Suchmethode
索 Suche nach Navigationsobjektdiagramm (gemäß dem geladenen Objekt Navigation zu anderen Objekten.)
按 OID -Suche (ruft das Objekt gemäß der OID des Objekts ab.)
使用 HQL -Abruf (unter Verwendung einer Objekt -orientierten HQL -Abfragesprache.)
使用 QBC -Suche (mit QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC ) Objekte abrufen.
索 Lokale SQL -Abruf (SQL Query -Anweisung mit lokaler Datenbank.)
Einschließlich der Abrufmethode von Hibernate, dem Zustand des Objekts in Hibernate, was sind die drei Abrufstrategien von Winterschlaf, für die Gelegenheiten anwendbar sind, das Problem, das ORM löst Found () Methode der Sitzungsmethode und der Sitzungsmethode und der Zusammenfassung der Unterschiede in der Differenz zwischen der Abfrageschnittstelle
T Transient: Nur mit der neuen Aussage erstellt, wurde nicht bestehen und befindet sich nicht im Cache der Sitzung. Java -Objekte in einem temporären Zustand werden als temporäre Objekte bezeichnet.
(Persistent: Es wurde bestehen und zum Cache der Sitzung hinzugefügt. Java -Objekte in einem anhaltenden Zustand werden als persistente Objekte bezeichnet.
E abgelöst: Es wurde bestehen, aber nicht mehr im Cache der Sitzung. Java -Objekte in einem freien Zustand werden als freie Objekte bezeichnet.
3 Was sind die drei Abrufstrategien von Hibernate und welche Anlässe gilt für die Angaben, die anwendbar sind?
Ø Sofortiges Abruf
Vorteile: vollständig transparent für die Anwendung.
Nachteile: Ausgewählte Aussagen sind viele.
Anwendbar: Klassenebene.
Ø Verspätete Abruf
Vorteile: Welche Objekte von der Anwendung geladen werden, um die Ausführung überschüssiger selektiver Aussagen zu vermeiden und Objekte zu vermeiden, die nicht geladen werden müssen, Speicherplatz sparen und die Effizienz des Abrufs verbessern müssen.
Nachteile: Wenn die Anwendung auf die Agenteninstanz des definitiven Zustands zugreifen soll, muss sichergestellt werden, dass sie initialisiert wurde, wenn er langlebig ist.
Anwendung: ein -multiple oder mehr zugeordnet. Anwendungen müssen nicht sofort zugänglich sein oder gar nicht zugreifen.
接 Suche nach links und äußerer Verbindung
Vorteile: Es ist vollständig transparent für die Anwendung. Bei externen Verbindungen ist die Anzahl der ausgewählten Aussagen gering.
Nachteile: Die möglicherweise nicht zugegriffenen Objekte können geladen werden. Komplexe Datenbanktabelle Verbindungsbild -Suchleistung.
Anwendung: eins -eins oder mehr zugeordnet. Anwendungen müssen sofort zugegriffen werden. Das Datenbanksystem verfügt über eine gute Leistung der Tabellenverbindung.
4 orm löste das Problem der Nichtübereinstimmung (die nicht zwischen dem Domänenmodell und dem Beziehungsmodell übereinstimmen)
向 Das Domänenmodell ist objektorientiert und das Beziehungsmodell ist verwandt.
Das Domänenmodell verfügt über Vererbungsbeziehungen, und das Beziehungsmodell kann die Vererbungsbeziehung nicht direkt darstellen.
Es gibt viele Beziehungen im 多 -Domänenmodell, und im Beziehungsmodell wird die Verbindungstabelle verwendet, um immer mehr damit verbundene Beziehungen darzustellen.
双 Das Domänenmodell hat eine Zwei -Wege -Beziehung.
精 Das Domänenmodell fördert das feine Partikelgrößenmodell, und das Beziehungsmodell befürwortet grobe Modelle.
5 Hibernate -Mapping in 3 Wege der Vererbungsbeziehung
系 Das gesamte Vererbungssystem verwendet eine Tabelle (Tabellenhierarchie)
张 Jede Unterklasse hat eine Tabelle und hat die eindeutigen Attribute der Unterklasse (Tableper Subclass) gespeichert.
张 Jede bestimmte Klasse (Union-Subclass), gespeichert als Tabelle vollständige Informationen (Tabelle pro Beton)
6 Session find () Methode und der Unterschied zwischen der Abfrageschnittstelle
Die Find () -Methode der Sitzungsklasse und die Abfrageschnittstelle unterstützen die HQL -Abrufmethode. Der Unterschied zwischen beiden besteht darin, dass er erstere nur einige bequeme Methoden für einfache HQL -Abfrageberechnungen ausführt Die Abfrageschnittstelle ist die eine Abfrageschnittstelle.
7 Konfiguration der Hibernate Association
Ein -an -on -Eins
Ø Ø Ø Ø Ø
Ø Ø Ø Ø Ø
8 Beschreiben Sie kurz die Eigenschaften der Sitzung
, Nicht -Fäden sind sicher. Bei der Gestaltung von Softwarearchitekturen sollten mehrere Threads vermieden werden, um dieselbe Sitzungsinstanz zu teilen.
实 Die Session -Instanz ist leicht. Dies bedeutet, dass das Sitzungsobjekt regelmäßig im Programm erstellt oder zerstört werden kann, z.
In der Sitzung wird jeder Datenbankvorgang in einer Transaktion durchgeführt, sodass Sie verschiedene Operationen trennen können (nur Lesen).
9 Hibernate verwendet die XML-Datei, um das Objekt zu konfigurieren-die Vorteile der Beziehungszuordnung
Hibernate eindringt weder in das obere Domänenmodell und dringt in das untere Datenmodell ein. Softwareentwickler können Domänenmodelle unabhängig voneinander entwerfen, ohne Kraft zu befolgen, um Spezifikationen zu befolgen. Datenbankdesigner können Datenmodelle unabhängig voneinander entwerfen, um alle Spezifikationen einzuhalten. Die Zuordnung des Objektvertrags hängt nicht von einem Programmcode ab. Wartung bequemer.
10 Die Funktion des Sitzungscache
库 Reduzieren Sie die Häufigkeit des Zugriffs auf die Datenbank. Die Geschwindigkeit der Anwendung aus dem Speicher aus dem Speicher ist offensichtlich schneller als die Geschwindigkeit der Abfrage der Daten in der Datenbank, sodass der Sitzungscache die Leistung des Datenzugriffs verbessern kann.
对 Es garantiert, dass das Objekt im Cache mit den relevanten Datensätzen in der Datenbank synchronisiert ist. Wenn sich der Status des anhaltenden Objekts in der Cache ändert, führt die Sitzung die entsprechende SQL -Anweisung nicht sofort aus Leistung.
11 Das Problem von mehr als der Laufzeit von mehr Angelegenheiten
新 Die erste Art von Verlustaktualisierung
Schmutziges Lesen
Ø Ø Ø Ø/Phantom -Lesen
Ø Lesen Sie nicht wiederholt
新 Die zweite Art von Verlustaktualisierung
12 Der Unterschied zwischen Reinigung und Leere der Sitzung
清 Session -Reinigung Caches bedeutet, die Datenbank synchron nach den Änderungen im Status des Cache zu aktualisieren.
S klar ist die Sitzung, um Teil oder alle Objekte oder Sitzungen zu löschen.
13 Hibernate -Arbeitsprinzip und warum
Primär
1. Lesen und analysieren Sie die Konfigurationsdatei
2. Lesen und analysieren Sie die Zuordnungsinformationen, erstellen Sie SessionFactory
3.. Öffnen Sie die Sitzung
4. Erstellen Sie die Transaktionsübertragung
5. Persistierende Operation
6. eine Transaktion einreichen
7. Schließung
8. Schließen Sie die Faktor
Ø Warum benutzt du?
1. verpackt den Code des Zugriffs von JDBC auf die Datenbank, wodurch der mühsame Wiederholungscode der Datenzugriffsschicht stark vereinfacht wird.
2. Hibernate ist ein Mainstream- und Persistenz -Framework, das auf JDBC basiert, und es ist eine ausgezeichnete ORM -Implementierung. Er vereinfacht die Codierungsarbeiten der Dao -Schicht weitgehend
3. Hibernate verwendet den Java -Reflexionsmechanismus anstelle eines Bytecode -erweiterten Programms, um Transparenz zu erreichen.
4. Die Leistung von Hibernate ist sehr gut, weil es ein leichtes Rahmen ist. Die Flexibilität der Kartierung ist ausgezeichnet. Es unterstützt verschiedene Beziehungsdatenbanken von eins bis eins bis zu komplexer.
14 Haftzögerlast
1. Hibernate2 Verzögerungsladungsimplementierung: a) Sportobjekt B) Sammlungstyp
2. Hibernate3 liefert eine Verzögerungsbelastungsfunktion des Attributs
Wenn Hibernate die Daten abfragt, existiert die Daten nicht und der Speicher, und wenn das Programm die Daten wirklich betreibt, existiert das Objekt und der Speicher wird verzögert.
15 Hibernate -Cache -Mechanismus
1. Der erste Cache -Level -Cache wird auch als interner Cache -Hibernate bezeichnet, der zum Cache der Anwendungstransaktionsklasse gehört
2. Zweiter -Level -Cache
a) Anwendung und Cache
b) Verteilter Cache
Bedingungen: Die Daten werden nicht von Drittanbietern geändert, die Datengröße befindet sich in einem akzeptablen Bereich, die Datenaktualisierungsfrequenz ist gering und die gleichen Daten werden häufig vom System und den nicht kritischen Daten verwendet.
c) Die Verwirklichung des Cache Dritter
16 Hibernate optimieren
1. Verwenden Sie zwei Assoziationen mit zwei Ways.
2. Flexibler Gebrauch von einem -way ein -multiple Assoziation
3. Niemand -ersetzen Sie es durch mehr Paare
4. Konfigurationsobjektcache, kein Sammelcache
5. Ein -to -multi -collection -Verwendungsbeutel, den größten Teil des Multi -Collection -Gebrauchssatzes
6. Vererbungsklassen werden für Multi -State verwendet
7. Es gibt weniger Tischfelder, haben keine Angst vor der Assoziation von Tabellen, es gibt einen zweiten Cache, der die Taille unterstützt
Das obige ist eine häufige Zusammenfassung von Hibernate, die in Java -Interviews häufiger vorkommt, in der Hoffnung, allen zu helfen.