Čo je režim dlhodobého spánku?
Režim dlhodobého spánku je rámec založený na objektovo-relačnom mapovaní založenom na otvorených zdrojoch (ORM) založený na jávach. Je to mapovací nástroj ORM v jave. Režim dlhodobého spánku je navrhnutý s cieľom znížiť zložitosť pri pripojení relačnej databázy pomocou Java. Hibernačný rámec je určený na mapovanie objektov Java, aby sa implementovalo objektovo orientované programovanie v relačnej databáze. Týmto spôsobom sa režim hibernácie pripája k relačnej databáze na vykonávanie dopytov:
- Hibernácia sa pripája priamo k zadanej databáze a používa hibernačný jazyk dotazov (HQL) na vykonávanie dotazov a mapovanie výsledkov dotazov na objekty Java.
- Režim dlhodobého spánku používa vlastnosti nastavené v konfiguračnom súbore XML režimu dlhodobého spánku na mapovanie výsledkov dotazov na objekty Java.
- Databázové pripojenie sa vytvorí pomocou relácie, ktorá pomáha pri ukladaní a načítaní pretrvávajúceho objektu java.
- Relácia sa vytvorí pomocou továrenského rozhrania relácie. V ideálnom prípade by mala existovať iba jedna továreň relácie na databázu.
Porovnanie Hibernate a JDBC
Tu je porovnávacia tabuľka, ktorá ukazuje porovnanie hibernácie a JDBC:
hibernácie | JDBC |
Režim dlhodobého spánku obsahuje betónové triedy, ktoré poskytujú logiku kotlovej dosky. | JDBC poskytuje iba rozhrania a abstraktné triedy. |
Všetky výnimky vyvolané hibernáciou nie sú začiarknuté. | Všetky triedy v JDBC vyvolávajú kontrolované výnimky. |
Nevyžaduje viac riadenia zdrojov a interne. | Vyžaduje si to viac riadenia zdrojov, ako je otváranie a zatváranie zdrojov. |
Uloží objekty Java priamo. | Nemôže ukladať objekty priamo. |
Podporuje dotazy nezávislé od databázy. | Podporuje dotazy špecifické pre databázu. |
Podporuje ukladanie do vyrovnávacej pamäte. | Nepodporuje ukladanie do vyrovnávacej pamäte. |
Podporte lenivé načítanie. | Nepodporuje lenivé načítanie. |
Architektúra dlhodobého spánku
Režim dlhodobého spánku nadväzuje na vrstvenú architektúru a má nasledujúce vrstvy:
- Aplikačná vrstva Java
- Hibernácia
- Backend API Layer
- Vrstva databázy
Hibernačná vrstva obsahuje nasledujúce zložky, ktoré sú nasledujúce:
1. Hibernačný konfiguračný objekt
Toto je prvý objekt, ktorý je potrebné vytvoriť, aby sa vytvorilo pripojenie k databáze pomocou režimu dlhodobého spánku. V ideálnom prípade by sa mal vytvoriť raz počas inicializácie aplikácie. Konfiguračný objekt poskytuje nasledujúce:
- Pripojenie k databáze: Pripojenie k databáze sa vytvorí pomocou jedného alebo viacerých konfiguračných súborov. Súbory sú hibernácie .properties a hibernate.cfg.xml.
- Mapovanie: Vytvorí sa mapovanie medzi triedami Java a tabuľkami relačných databáz.
2. Session Factory
Konfiguračný objekt vytvorený v kroku 1 sa používa na vytvorenie výrobného objektu relácie, vďaka ktorému je hibernácia pripravená pomocou poskytnutého konfiguračného súboru a umožňuje vytvorenie objektu relácie. Pretože továreň na relácie je ťažkým objektom, zvyčajne sa vytvorí raz počas počiatočnej fázy aplikácie. V prípade, že je potrebné nadviazať spojenie s viacerými databázami, existuje potreba výrobného objektu s viacerými reláciami. Továreň relácie je tiež objektom zabezpečujúcim vlákna.
3. Relácia
Objekt relácie vytvára fyzické spojenie s databázou. Je to ľahký objekt a mal by sa vytvoriť vždy, keď sa vyžaduje interakcia s databázou. Ak objekt musí pretrvávať alebo ho treba načítať, dá sa to urobiť iba pomocou objektu relácie. Objekt relácie by sa mal uzavrieť ihneď po dokončení požadovanej operácie, pretože nie sú bezpečné pre vlákna.
4. Transakcia
Je to voliteľný objekt a predstavuje jednotku práce vykonanú s databázou. Transakčný objekt zaisťuje, že sa musia vykonať všetky operácie alebo sa nesmie vykonať žiadna z nich. Je to objekt s jednoduchými vláknami a objektmi s krátkou životnosťou.
5. Dotazovací objekt
Tento objekt používa štruktúrovaný dopytovací jazyk (SQL) alebo Hibernate Query Language (HQL) na načítanie údajov z databázy a vytvorenie inštancií objektov. Objekt Query sa môže použiť na obmedzenie výstupu vráteného z dotazu, naviazanie parametrov dotazu a vykonanie dotazu.
dotazy
Tu vykonáme niekoľko otázok, ktoré objasnia veci. Zoberme si zamestnanca subjektu, ktorý má triedu štruktúrovanú ako:
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
)
Režim dlhodobého spánku vyžaduje súbor XML s názvom hibernate.cfg.xml, ktorý vyzerá takto:
kód:
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hibernatetest
edubca
edubcauser
org.hibernate.dialect.MySQLDialect
create
Nižšie je uvedený kód, ktorý ukazuje, ako prebieha vkladanie a získavanie údajov do databázy pomocou režimu dlhodobého spánku:
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());
)
Výkon:
Zamestnanec s identifikačným číslom 1 má meno Yash a má plat 40000.
Zamestnanec s identifikačným číslom 2 má meno Aman, má plat 42000.
záver
V tomto článku sme podrobne popísali režim dlhodobého spánku, jeho architektúru, porovnanie s JDBC a príklady kódu. Poznamenali sme tiež, že režim dlhodobého spánku poskytuje jednoduchý a efektívny spôsob interakcie s databázou.
Odporúčané články
Toto je príručka pre režim dlhodobého spánku. Tu diskutujeme architektúru, komponenty a porovnanie hibernácie a JDBC s príkladmi kódu. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Rámce v Jave
- Čo sú to rámce automatizácie testov?
- HADOOP Framework
- .Net Core vs .Net Framework
- 2D grafika v Jave
- Hodiť vs Hodí | Top 5 rozdielov, ktoré by ste mali vedieť