Hibernacijski okvir - Kompletan vodič za hibernacijski okvir

Sadržaj:

Anonim

Što je hibernacijski okvir?

Hibernacija je otvoreni izvorni objektno-relacijski mapiranje (ORM) utemeljen na otvorenom java okviru. To je ORM alat za mapiranje u Javi. Hibernacija je dizajnirana s potrebom da se smanji složenost tijekom povezivanja relacijske baze podataka kroz javu. Hibernacijski okvir dizajniran je za mapiranje java objekata radi provođenja objektno orijentiranog programiranja u relacijskoj bazi podataka. Ovo je način na koji se hibernira povezano s relacijskom bazom podataka za izvršavanje upita:

  • Hibernata se izravno povezuje s navedenom bazom podataka i koristi hibernacijski jezik upita (HQL) za izvršavanje upita i mapiranje rezultata upita u java objektima.
  • Hibernate koristi svojstva postavljena u XML datoteci za konfiguraciju hibernacije za mapiranje rezultata upita u java objekte.
  • Veza s bazom podataka stvorena je pomoću sesije koja pomaže u spremanju i dohvaćanju upornog Java-objekta.
  • Sjednica je kreirana korištenjem tvorničkog sučelja Session. U idealnom slučaju, trebalo bi postojati samo jedna tvornica sesija po bazi podataka.

Usporedba hibernacije i JDBC-a

Evo tablice za usporedbu koja prikazuje usporedbu hibernacije i JDBC-a:

HibernacijaJDBC
Hibernacija sadrži betonske klase koje pružaju logiku kotlovske ploče.JDBC pruža samo sučelja i apstraktne klase.
Sve iznimke koje baca hibernacija nisu provjerene.Sve klase u JDBC bacaju provjerene iznimke.
Ne zahtijeva više upravljanja resursima i čini ga interno.To zahtijeva više upravljanja resursima poput otvaranja i zatvaranja resursa.
Izravno pohranjuje java predmete.Ne može izravno pohraniti predmete.
Podržava neovisne upite u bazi podataka.Podržava upite vezane uz bazu podataka.
Podržava keširanje.Ne podržava keširanje.
Podrška lijeno učitavanje.Ne podržava lijeno učitavanje.

Hibernacijska okvirna arhitektura

Hibernata slijedi slojevitu arhitekturu i ima sljedeće slojeve:

  • Java-sloj aplikacije
  • Sloj hibernacije
  • Layer API rezervni dio
  • Sloj baze podataka

Hibernacijski sloj sadrži sljedeće komponente:

1. Objekt konfiguracije hibernacije

To je prvi objekt koji mora stvoriti za uspostavljanje veze s bazom podataka hibernacijom. Idejno bi ga trebalo stvoriti jednom, tijekom inicijalizacije aplikacije. Objekt konfiguracije pruža sljedeće:

  • Spajanje baze podataka: Veza s bazom podataka uspostavlja se pomoću jedne ili više konfiguracijskih datoteka. Datoteke su hibernirane .properties i hibernate.cfg.xml.
  • Mapiranje: Ovo stvara mapiranje između java klasa i relacijskih tablica baze podataka.

2. Tvornica sjednica

Konfiguracijski objekt kreiran u koraku 1 koristi se za stvaranje tvorničkog objekta sesije koji hibernatsku konfiguraciju čini spremnom korištenjem ponuđene konfiguracijske datoteke i način da se stvori objekt sesije. Budući da je tvornica sesija težak objekt, obično se stvara jednom tijekom početne faze aplikacije. U slučaju da je potrebno uspostaviti veze s više baza podataka, potreban je tvornički objekt s više sesija. Također, tvornica sesija je objekt siguran.

3. sjednica

Objekt sesije uspostavlja fizičku vezu s bazom podataka. To je lagan objekt i trebao bi se stvoriti svaki put kada je potrebna interakcija s bazom podataka. Ako objekt treba ustrajati ili ga treba dohvatiti, to se može učiniti samo pomoću objekta sesije. Objekt sesije treba zatvoriti čim se završi potrebna operacija, jer se oni ne sigurnosno narezuju.

4. Transakcija

To je neobavezni objekt i predstavlja jedinicu posla obavljenog s bazom podataka. Objekt transakcije osigurava da se moraju izvršiti sve operacije ili se nijedna od njih ne može izvršiti. To je jednodijelni i kratkotrajni objekt.

5. Upitni objekt

Ovaj objekt koristi strukturirani jezik upita (SQL) ili hibernacijski jezik upita (HQL) za dohvaćanje podataka iz baze podataka i instancije objekata. Objekt upita može se koristiti za ograničavanje iznosa vraćenog iz upita, vezivanje parametara upita i izvršavanje upita.

upiti

Ovdje ćemo izvršiti neke upite koji će stvari učiniti jasnijima. Razmotrimo zaposlenika entiteta koji ima klasu strukturiranu kao:

Kodirati:

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
)

Hibernate zahtijeva XML datoteku koja se zove hibernate.cfg.xml koja izgleda kao:

Kodirati:


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

Ispod je kôd koji pokazuje kako se umetanje i preuzimanje odvija u bazu podataka putem hibernacije:

Kodirati:

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

Izlaz:

Zaposlenik s ID-om 1 ima ime Yash s 40000 plaća.
Zaposlenik s ID-om 2 ima ime Aman s plaćom od 42000.

Zaključak

U ovom smo članku detaljno opisali stanje hibernacije, njegovu arhitekturu, usporedbu s JDBC i primjerima koda. Također smo primijetili da hibernacija omogućuje jednostavan i učinkovit način interakcije s bazom podataka.

Preporučeni članci

Ovo je vodič za hibernacijski okvir. Ovdje ćemo raspravljati o arhitekturi, komponentama i usporedbi hibernacije i JDBC-a s primjerima koda. Možete pogledati i sljedeće članke da biste saznali više -

  1. Okviri na Javi
  2. Što su okviri za automatsko testiranje?
  3. HADOOP okvir
  4. .Net Core vs. Net Framework
  5. 2D grafika na Javi
  6. Baciti protiv bacanja | Top 5 razlika koje biste trebali znati