Ruhezustand Framework - Komplette Anleitung zum Hibernate Framework

Inhaltsverzeichnis:

Anonim

Was ist das Hibernate Framework?

Hibernate ist ein auf Open Source Object Relational Mapping (ORM) basierendes Java-Persistenz-Framework. Es ist ein ORM-Mapping-Tool in Java. Hibernate wurde mit dem Ziel entwickelt, die Komplexität beim Verbinden einer relationalen Datenbank über Java zu reduzieren. Das Hibernate-Framework dient zum Zuordnen von Java-Objekten, um die objektorientierte Programmierung in der relationalen Datenbank zu implementieren. So stellen Sie im Ruhezustand eine Verbindung zur relationalen Datenbank her, um Abfragen auszuführen:

  • Der Ruhezustand stellt eine direkte Verbindung mit der angegebenen Datenbank her und verwendet die Ruhezustands-Abfragesprache (HQL), um Abfragen auszuführen und Abfrageergebnisse Java-Objekten zuzuordnen.
  • Hibernate verwendet Eigenschaften, die in der Hibernate-Konfigurations-XML-Datei festgelegt sind, um Abfrageergebnisse Java-Objekten zuzuordnen.
  • Die Datenbankverbindung wird mithilfe einer Sitzung erstellt, mit deren Hilfe das beständige Java-Objekt gespeichert und abgerufen werden kann.
  • Die Sitzung wird über die Session Factory-Oberfläche erstellt. Im Idealfall sollte es nur eine Session Factory pro Datenbank geben.

Vergleich von Hibernate und JDBC

Hier ist eine Vergleichstabelle, die einen Vergleich zwischen Ruhezustand und JDBC zeigt:

ÜberwinternJDBC
Hibernate enthält konkrete Klassen, die Boilerplate-Logik bereitstellen.JDBC bietet nur Schnittstellen und abstrakte Klassen.
Alle Ausnahmen, die durch den Ruhezustand ausgelöst werden, sind deaktiviert.Alle Klassen in JDBC lösen geprüfte Ausnahmen aus.
Es erfordert kein weiteres Ressourcenmanagement und wird intern durchgeführt.Es erfordert mehr Ressourcenmanagement wie das Öffnen und Schließen von Ressourcen.
Speichert Java-Objekte direkt.Objekte können nicht direkt gespeichert werden.
Unterstützt datenbankunabhängige Abfragen.Unterstützt datenbankspezifische Abfragen.
Unterstützt Caching.Caching wird nicht unterstützt.
Unterstützt das faule Laden.Lazy Loading wird nicht unterstützt.

Ruhezustand-Framework-Architektur

Der Ruhezustand folgt der Ebenenarchitektur und hat die folgenden Ebenen:

  • Java-Anwendungsschicht
  • Überwintern
  • Backend API Layer
  • Datenbankebene

Der Ruhezustand enthält die folgenden Komponenten:

1. Konfigurationsobjekt in den Ruhezustand versetzen

Dies ist das erste Objekt, das erstellt werden muss, um eine Datenbankverbindung im Ruhezustand herzustellen. Es sollte idealerweise einmal während der Anwendungsinitialisierung erstellt werden. Das Konfigurationsobjekt bietet Folgendes:

  • Datenbankverbindung: Die Datenbankverbindung wird mithilfe einer oder mehrerer Konfigurationsdateien hergestellt. Die Dateien sind im Ruhezustand .properties und hibernate.cfg.xml.
  • Zuordnung: Hiermit wird eine Zuordnung zwischen Java-Klassen und relationalen Datenbanktabellen erstellt.

2. Session Factory

Das in Schritt 1 erstellte Konfigurationsobjekt wird verwendet, um ein Session Factory-Objekt zu erstellen, das die Konfiguration im Ruhezustand unter Verwendung der bereitgestellten Konfigurationsdatei vorbereitet und die Erstellung des Sitzungsobjekts ermöglicht. Da es sich bei der Session Factory um ein schweres Objekt handelt, wird es in der Regel einmal während der Startphase der Anwendung erstellt. Für den Fall, dass Verbindungen zu mehreren Datenbanken hergestellt werden müssen, ist ein Objekt mit mehreren Sitzungsfactorys erforderlich. Die Session Factory ist außerdem ein threadsicheres Objekt.

3. Sitzung

Das Sitzungsobjekt stellt eine physische Verbindung mit der Datenbank her. Es ist ein kompaktes Objekt und sollte jedes Mal erstellt werden, wenn eine Interaktion mit der Datenbank erforderlich ist. Wenn ein Objekt beibehalten oder abgerufen werden muss, kann dies nur mit dem Sitzungsobjekt durchgeführt werden. Sitzungsobjekt sollte geschlossen werden, sobald der erforderliche Vorgang abgeschlossen ist, da sie nicht threadsicher sind.

4. Transaktion

Es ist ein optionales Objekt und stellt eine Arbeitseinheit dar, die mit der Datenbank ausgeführt wurde. Ein Transaktionsobjekt stellt sicher, dass entweder alle Operationen ausgeführt werden müssen oder keine von ihnen ausgeführt werden muss. Es ist ein Singlethread und kurzlebiges Objekt.

5. Objekt abfragen

Dieses Objekt verwendet SQL (Structured Query Language) oder HQL (Hibernate Query Language), um Daten aus der Datenbank abzurufen und Objekte zu instanziieren. Ein Abfrageobjekt kann verwendet werden, um die von der Abfrage zurückgegebene Ausgabe zu begrenzen, Abfrageparameter zu binden und die Abfrage auszuführen.

Abfragen

Hier werden einige Abfragen ausgeführt, die die Dinge klarer machen. Betrachten wir einen Entity Employee, dessen Klasse wie folgt strukturiert ist:

Code:

Package com.edubca.hibernatetest;
@Entity
@Table(name = "EMPLOYEE")
public class Employee implements Serializable
(
private static final long serialVersionUID = -1798070786993123455L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "empID")
private Integer empID;
@Column(name = "NAME")
private String empName;
@Column(name = "SALARY")
private Integer salary;
//Getters and setters
)

Für den Ruhezustand ist eine XML-Datei mit dem Namen hibernate.cfg.xml erforderlich, die wie folgt aussieht:

Code:


com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hibernatetest
edubca
edubcauser
org.hibernate.dialect.MySQLDialect
create

Der folgende Code zeigt, wie das Einfügen und Abrufen in die Datenbank mithilfe des Ruhezustands erfolgt:

Code:

//Create Configuration object
Configuration con=new AnnotationConfiguration().configure(new File("hibernate.cgf.xml"));
// create session factory using configuration
SessionFactory fact=conf.buildSessionFactory();
//get session from session factory
Session session=fact.openSession();
//Instantiate and populate Employee entity object
Employee emp=new Employee();
emp.setempID(1);
emp.setempName(“Yash”);
emp.setSalary(40000);
Employee emp1=new Employee();
emp1.setempID(2);
emp1.setempName(“Aman”);
emp1.setSalary(42000);
//persist emp object
session.save(emp);
//persist emp1 object
session.save(emp1);
//retrieve data from database
Query query=session.createQuery(“from Employee”);
List list= query.list();
For(Employee e : list)(
System.out.println(“Employee with ID ” + e.getempID() + “ has Name ” + e.getempName() + “ has salary ” + e.getsalary());
)

Ausgabe:

Ein Mitarbeiter mit der ID 1 hat Name Yash hat ein Gehalt von 40000.
Ein Mitarbeiter mit der ID 2 hat Name Aman hat ein Gehalt von 42000.

Fazit

In diesem Artikel haben wir uns ausführlich mit dem Ruhezustand, seiner Architektur, dem Vergleich mit JDBC und Codebeispielen befasst. Wir haben auch festgestellt, dass der Ruhezustand eine einfache und effiziente Möglichkeit bietet, mit der Datenbank zu interagieren.

Empfohlene Artikel

Dies ist eine Anleitung zum Hibernate Framework. Hier diskutieren wir die Architektur, Komponenten und den Vergleich von Ruhezustand und JDBC mit Codebeispielen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Frameworks In Java
  2. Was sind Testautomatisierungs-Frameworks?
  3. HADOOP Framework
  4. .Net Core vs .Net Framework
  5. 2D-Grafik in Java
  6. Werfen vs wirft | Die 5 wichtigsten Unterschiede, die Sie kennen sollten