In letzter Zeit habe ich viele Hibernate-Tutorials geschrieben. Hibernate ist eines der besten Java-ORM-Tools auf dem aktuellen Markt. Dieser Beitrag ist wie ein Index aller Beiträge für Hibernate-Tutorials und Beispiele. Sie können diese Hibernate-Tutorials in Reihenfolge durchgehen, um Hibernate von Grund auf zu lernen. Wahrscheinlich werde ich weitere Hibernate-Tutorials zur Liste hinzufügen, also sollten Sie sie vielleicht als Lesezeichen speichern und ab und zu überprüfen.
Hibernate Tutorial
- Hibernate Tutorial für Anfänger Hibernate unterstützt JPA-Annotationen und ist sehr flexibel. Wir können es sowohl über XML als auch über Eigenschaftsdateien als auch programmgesteuert konfigurieren. Dieses Tutorial ist eine großartige Möglichkeit, mit dem Hibernate-Framework zu beginnen. Es konzentriert sich auf die verschiedenen Konfigurationen, die für Hibernate erforderlich sind, und bietet Beispiele für einfache XML-basierte Zuordnungen sowie auf JPA-Annotationen basierende Zuordnungen. Sie werden auch verschiedene Möglichkeiten kennenlernen, die
SessionFactory
zu initialisieren, sowie wichtige Komponenten des Hibernate-Frameworks. - Hibernate One-to-One Mapping Meistens sind Datenbanktabellen miteinander verbunden. Es gibt viele Formen der Verbindung – eins-zu-eins, eins-zu-viele und viele-zu-viele sind auf der obersten Ebene, die weiter in unidirektionale und bidirektionale Zuordnungen unterteilt werden können. Dieses Tutorial führt Sie durch die Implementierung der Hibernate One-to-One Mapping sowohl mit XML-Konfiguration als auch mit der Konfiguration durch JPA-Annotationen.
- Hibernate One-to-Many Mapping In einfachen Worten bedeutet eine Eins-zu-viele Zuordnung, dass eine Zeile in einer Tabelle mehreren Zeilen in einer anderen Tabelle zugeordnet werden kann. Denken Sie zum Beispiel an ein Warenkorbsystem, bei dem wir eine weitere Tabelle für Artikel haben. Ein Einkaufswagen kann mehrere Artikel haben, also haben wir hier eine Eins-zu-viele Zuordnung. In diesem Tutorial erfahren Sie, wie Sie die One-to-Many Mapping mit XML-basierter Konfiguration und dann mit Hibernate-Annotationen implementieren können.
- Hibernate Many-to-Many Mapping Many-to-Many-Mapping wird in der Regel in der Datenbank mit einer Verbindungstabelle implementiert. Zum Beispiel können wir eine Cart-Tabelle und eine Item-Tabelle sowie eine Cart_Items-Tabelle für Many-to-Many-Mapping haben. Jeder Einkaufswagen kann mehrere Artikel haben, und jeder Artikel kann Teil mehrerer Einkaufswagen sein. Daher haben wir hier eine Many-to-Many-Zuordnung. Dieses Tutorial erklärt die Hibernate-Many-to-Many unidirektionale sowie bidirektionale Zuordnung.
- Hibernate Query Language (HQL) Hibernate-Framework wird mit einer leistungsstarken objektorientierten Abfragesprache geliefert – Hibernate Query Language (HQL). Sie ähnelt sehr SQL, außer dass wir Objekte anstelle von Tabellennamen verwenden, was sie objektorientierter macht. Dieser Artikel erläutert HQL und die verschiedenen Klauseln, die von der HQL-Sprache unterstützt werden.
- Hibernate Native SQL Query Hibernate bietet die Möglichkeit, native SQL-Abfragen mithilfe des SQLQuery-Objekts auszuführen. Dies ist sehr nützlich, wenn wir datenbankspezifische Abfragen ausführen möchten, die von der Hibernate-API nicht unterstützt werden, wie z. B. Abfragehinweise oder das CONNECT-Schlüsselwort in der Oracle-Datenbank.
- Hibernate Named Query Wenn es viele HQL- oder Native-SQL-Abfragen gibt, führt dies zu einem Codechaos, da alle Abfragen im gesamten Projekt verstreut sind. Deshalb bietet Hibernate benannte Abfragen an, die wir an einer zentralen Stelle definieren können und überall im Code verwenden können. Wir können benannte Abfragen sowohl für HQL als auch für Native SQL erstellen. Hibernate Named Queries können in Hibernate-Mapping-Dateien mit dem
query
– odersql-query
-Element definiert werden oder durch die Verwendung von JPA-Annotationen @NamedQuery und @NamedNativeQuery. - Hibernate-Kriterien Hibernate bietet eine Criteria-API, die objektorientierter ist und zum Abfragen der Datenbank und zum Abrufen von Ergebnissen verwendet wird. Wir können Criteria nicht verwenden, um Update- oder Löschabfragen oder irgendwelche DDL-Anweisungen auszuführen. Es wird nur verwendet, um die Ergebnisse aus der Datenbank mithilfe eines objektorientierteren Ansatzes abzurufen. Einige der häufigen Verwendungen der Criteria-API sind die Projektion, die wir für Aggregatfunktionen wie sum(), min(), max() usw. verwenden können, ProjectionList, um nur ausgewählte Spalten abzurufen, das Sortieren der Ergebnisse usw.
- Hibernate First-Level-Cache Der Hibernate-Cache kann sehr nützlich sein, um eine schnelle Anwendungsleistung zu erzielen, wenn er korrekt verwendet wird. Die Idee hinter dem Cache besteht darin, die Anzahl der Datenbankabfragen zu reduzieren und damit die Durchsatzzeit der Anwendung zu verringern. Der Hibernate-First-Level-Cache ist mit dem Session-Objekt verbunden. Der Hibernate-First-Level-Cache ist standardmäßig aktiviert, und es gibt keine Möglichkeit, ihn zu deaktivieren. Hibernate bietet jedoch Methoden an, mit denen wir ausgewählte Objekte aus dem Cache löschen oder den Cache vollständig löschen können. Ein in einer Session zwischengespeichertes Objekt ist für andere Sitzungen nicht sichtbar, und wenn die Sitzung geschlossen wird, gehen auch alle zwischengespeicherten Objekte verloren.
- Hibernate Second Level Cache mit EHCache Hibernate Second Level Cache-Provider umfassen EHCache und Infinispan, aber EHCache ist beliebter, da es einfach zu integrieren ist und alle Hibernate-Cachingstrategien unterstützt. Dieses Tutorial bietet ein vollständiges Beispiel zur Integration von EHCache mit dem Hibernate-Framework.
- Hibernate get vs load Hibernate Session bietet verschiedene Methoden zum Abrufen von Daten aus der Datenbank. Zwei davon sind „get()“ und „load()“. Es gibt auch viele überladene Methoden dafür, die wir in verschiedenen Situationen verwenden können. Auf den ersten Blick scheinen „get()“ und „load()“ ähnlich zu sein, da sie beide Daten aus der Datenbank abrufen. Es gibt jedoch einige Unterschiede zwischen ihnen, die dieses Tutorial anhand von Beispielcode erklärt.
- Hibernate save vs persist Die Hibernate Session ist die Schnittstelle zwischen der Java-Anwendung und dem Hibernate-Framework. Dieses Tutorial erklärt wichtige Methoden der Session zum Speichern und Aktualisieren von Daten in Tabellen – „save“, „saveOrUpdate“, „persist“, „update“ und „merge“.
- Hibernate openSession vs getCurrentSession Hibernate SessionFactory ist die Fabrikklasse, über die wir Sitzungen erhalten und Datenbankoperationen durchführen. Hibernate SessionFactory bietet drei Methoden, um ein Session-Objekt zu erhalten – getCurrentSession(), openSession() und openStatelessSession(). In diesem Tutorial wird jede davon mit Beispielcode erklärt.
- Hibernate log4j Integration Hibernate 4 verwendet JBoss-Protokollierung, aber log4j ist das beliebteste Protokollierungsframework. Ein kurzes Tutorial, das erklärt, wie man die Protokollierung mit log4j in das Hibernate-Framework integriert.
- Hibernate Tomcat JNDI DataSource Beispiel Meistens wird das Hibernate-Framework in Webanwendungen verwendet, die in Tomcat oder einem anderen Servlet-Container ausgeführt werden. Hibernate kann die als JNDI-Ressource im Container definierte DataSource verwenden. Dies ist der bevorzugte Ansatz, um dem Servlet-Container das Handling der Datenbankverbindungen mithilfe von Verbindungspooling zu überlassen.
- Spring Hibernate Integration Spring ist eines der am häufigsten verwendeten Java EE Frameworks und Hibernate ist das beliebteste ORM-Framework. Deshalb wird die Kombination von Spring Hibernate in Unternehmensanwendungen häufig verwendet. In diesem Tutorial wird Spring 4 verwendet und mit Hibernate 3 integriert, und dann wird dasselbe Projekt auf Hibernate 4 aktualisiert.
- Spring MVC Hibernate Beispiel Dieses Tutorial geht weiter und erklärt, wie man Hibernate mit Spring MVC integriert und die deklarative Transaktionsverwaltung von Spring verwendet, anstatt die Hibernate-Transaktionsverwaltung zu verwenden.
- Struts2 Hibernate Integrationsbeispiel Dieses Tutorial erklärt den allgemeinen Weg, wie man Hibernate mit einer beliebigen Webanwendung integriert, durch die Verwendung von ServletContextLister. Das Beispiel verwendet Struts2 mit Hibernate, aber hinter der Integration steht ausschließlich die Servlet-Technologie. Dies unterscheidet sich von der Spring-Integration, weil Struts2 keine integrierte Unterstützung für die Hibernate-Integration bietet.
- Hibernate-Validator Beispiel Die Datenvalidierung ist ein integraler Bestandteil jeder Anwendung. Es handelt sich um eine übergreifende Aufgabe, die auf der Präsentationsebene, der Geschäftsebene sowie der persistenten Ebene stattfindet. Deshalb bietet JSR-303 einen standardbasierten Ansatz für die Validierung von Java-Bean-Eigenschaften mittels Annotationen. Hibernate Validator unterstützt JSR-303, und dieses Tutorial zeigt die Verwendung anhand eines einfachen Beispiels.
- Hibernate-Tools Eclipse-Plugin Wenn Sie an Hibernate-Projekten gearbeitet haben, sollten Sie mit vielen Eigenschaften vertraut sein, die wir für die Hibernate-Mapping- und Konfigurationsdatei benötigen. Ohne ein geeignetes Werkzeug, das uns bei der Suche nach den richtigen Eigenschaften unterstützen kann, wird es sehr schwierig, unsere Anwendung korrekt zu konfigurieren. Hier kommt das Hibernate-Tools Eclipse-Plugin ins Spiel, ein unverzichtbares Plugin für Hibernate-Projekte.
- Hibernate-Interviewfragen Ein gutes Verständnis des Hibernate-Frameworks ist ein Pluspunkt für Java-basierte Interviews, deshalb habe ich diesen Beitrag geschrieben. Er enthält die meisten wichtigen Fragen zum Hibernate-Framework mit detaillierten Antworten. Sie sollten diese durchgehen, bevor Sie zum Interview gehen, um Ihr Wissen aufzufrischen.
Hibernate-Tutorial – Fehlerbehebungen für häufige Fehler
- Wie konfiguriere ich die hibernate.cfg.xml, um offline zu arbeiten
- org.hibernate.AnnotationException: Kein Bezeichner für Entitätsklasse angegeben
- org.hibernate.HibernateException: get ist ohne aktive Transaktion ungültig
- org.hibernate.HibernateException: Kein CurrentSessionContext konfiguriert
- Hibernate-Programm wird nicht beendet
- Zugriff auf DialectResolutionInfo kann nicht null sein, wenn ‚hibernate.dialect‘ nicht festgelegt ist
Source:
https://www.digitalocean.com/community/tutorials/hibernate-tutorial