Hibernált keret - Teljes útmutató a Hibernált keretrendszerhez

Tartalomjegyzék:

Anonim

Mi a hibernált keretrendszer?

A Hibernálás egy nyílt forrású objektum-relációs leképezés (ORM) alapú java perzisztencia keretrendszer. Ez egy ORM leképező eszköz Java-ban. A hibernálást azzal a céllal fejlesztették ki, hogy csökkentsék a bonyolultságot, miközben a relációs adatbázist a java segítségével csatlakoztatják. A hibernált keretrendszer célja a java objektumok leképezése, az objektumorientált programozás megvalósítása érdekében a relációs adatbázisban. A hibernálás így kapcsolódik a relációs adatbázishoz a lekérdezések végrehajtásához:

  • A hibernálás közvetlenül kapcsolódik a megadott adatbázishoz, és hibernált lekérdezési nyelvet (HQL) használ a lekérdezések végrehajtására és a lekérdezés eredményeinek leképezésére a java objektumokhoz.
  • A Hibernálás a Hibernátum konfigurációs XML fájlban beállított tulajdonságokat használja a lekérdezés eredményeinek Java objektumokhoz való leképezésére.
  • Az adatbázis-kapcsolatot egy olyan munkamenettel hozzák létre, amely elősegíti az állandó java-objektum mentését és letöltését.
  • A munkamenet a Session gyár felületével jön létre. Ideális esetben csak egy munkamenetgyár lehet adatbázisonként.

A hibernált és a JDBC összehasonlítása

Itt található egy összehasonlító táblázat, amely bemutatja a hibernált és a JDBC összehasonlítását:

HibernálásJDBC
A Hibernátum beton osztályokat tartalmaz, amelyek biztosítják a kazánlemez logikáját.A JDBC csak interfészeket és absztrakt osztályokat biztosít.
A hibernálás által kiváltott összes kivétel nincs bejelölve.A JDBC összes osztálya ellenőrzött kivételeket vet fel.
Nem igényel további erőforrás-kezelést, és belsőleg is.Több erőforrás-kezelést igényel, például az erőforrások megnyitását és bezárását.
A java tárgyakat közvetlenül tárolja.Nem tárolhat tárgyakat közvetlenül.
Támogatja az adatbázis-független lekérdezéseket.Támogatja az adatbázis-specifikus lekérdezéseket.
Támogatja a gyorsítótárazást.Nem támogatja a gyorsítótárazást.
Támogassa a lusta betöltést.Nem támogatja a lusta betöltést.

Hibernált keretrendszer

A hibernálód követi a rétegezett architektúrát, és a következő rétegekkel rendelkezik:

  • Java alkalmazás réteg
  • Hibernált réteg
  • Háttér API-réteg
  • Adatbázis-réteg

A hibernált réteg a következő komponenseket tartalmazza:

1. Hibernált konfigurációs objektum

Ez az első objektum, amelyet létre kell hoznia az adatbázis-kapcsolat hibernált használatával történő létrehozásához. Ideális esetben egyszer létre kell hoznia, az alkalmazás inicializálása során. A konfigurációs objektum a következőket biztosítja:

  • Adatbázis-kapcsolat: Az adatbázis-kapcsolat egy vagy több konfigurációs fájl használatával jön létre. A fájlok hibernált .properties és hibernate.cfg.xml fájlok.
  • Leképezés: Ez létrehozza a leképezést a java osztályok és a relációs adatbázis táblák között.

2. Munkamenet gyár

Az 1. lépésben létrehozott konfigurációs objektum egy munkamenet-gyári objektum létrehozására szolgál, amely készen áll a hibernált konfigurációra a megadott konfigurációs fájl használatával, és utat nyit a munkamenet-objektum létrehozásához. Mivel a munkamenet gyár nehéz tárgy, általában az alkalmazás indulási fázisában hozza létre egyszer. Szükség van több munkamenet-gyári objektumra abban az esetben, ha több adatbázishoz kapcsolódást kell létrehozni. A munkamenet gyár egy szálbiztos objektum is.

3. Munkamenet

A munkamenet-objektum fizikai kapcsolatot hoz létre az adatbázissal. Ez egy könnyű objektum, amelyet minden alkalommal létre kell hozni, amikor az adatbázisba való interakció szükséges. Ha egy objektumot fenn kell tartani, vagy le kell tölteni, akkor ezt csak a munkamenet-objektummal lehet megtenni. A munkamenet-objektumot be kell zárni, mihelyt a szükséges művelet befejeződik, mivel nem biztonságosak a szálra.

4. Tranzakció

Ez egy opcionális objektum, és az adatbázisban végzett munka egységét képviseli. A tranzakciós objektum biztosítja, hogy vagy minden műveletet végre kell hajtani, vagy egyiket sem kell végrehajtania. Ez egyszálú és rövid élettartamú tárgy.

5. Lekérdezés objektum

Ez az objektum strukturált lekérdezési nyelvet (SQL) vagy hibernált lekérdezési nyelvet (HQL) használ az adatok letöltéséhez az adatbázisból és az objektumok azonnali felhasználásához. A Lekérdezés objektum felhasználható a lekérdezésből visszatérő output korlátozására, a lekérdezési paraméterek kötésére és a lekérdezés végrehajtására.

lekérdezések

Itt végrehajtunk néhány kérdést, amelyek világosabbá teszik a dolgokat. Vegyük fontolóra egy olyan entitás alkalmazottat, amelynek osztálya a következőképpen épül fel:

Kód:

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
)

A Hibernálás egy hibernate.cfg.xml nevű XML fájlt igényel, amely a következőképpen néz ki:

Kód:


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

Az alábbiakban bemutatjuk a kódot, amely megmutatja, hogyan történik a hibernálás segítségével az adatbázisba történő beillesztés és visszakeresés:

Kód:

//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());
)

Kimenet:

Az 1. azonosítószámú alkalmazottnak Yash neve van, 40000 fizetése.
A 2. azonosítószámú alkalmazottnak Aman neve van. A fizetése 42000.

Következtetés

Ebben a cikkben részletesen ismertettük a hibernálást, annak architektúráját, összehasonlítását a JDBC-vel és a kódpéldákat. Azt is megjegyeztük, hogy a hibernálás egyszerű és hatékony módszert kínál az adatbázis kezelésére.

Ajánlott cikkek

Ez egy útmutató a Hibernált keretrendszerhez. Itt tárgyaljuk a hibernált és a JDBC architektúráját, összetevőit és összehasonlítását a kódpéldákkal. A következő cikkeket is megnézheti további információkért -

  1. Keretek a Java-ban
  2. Mi a teszt automatizálási keretrendszer?
  3. HADOOP keretrendszer
  4. .Net Core vs .Net Framework
  5. 2D grafika Java-ban
  6. Dobás és dobás | Öt legfontosabb különbség, amelyet tudnia kell