Ce este Hibernate Framework?
Hibernate este un cadru de persistență java bazat pe mapare relațională cu obiecte (ORM). Este un instrument de mapare ORM în Java. Hibernate este proiectat cu necesitatea de a reduce complexitatea în timp ce conectați o bază de date relațională prin java. Cadrul hibernat este proiectat pentru a mapa obiectele java pentru a implementa programarea orientată pe obiecte în baza de date relațională. Acesta este modul de hibernare se conectează la baza de date relațională pentru a executa interogări:
- Hibernate se conectează direct cu baza de date specificată și folosește limbajul de interogare hibernat (HQL) pentru a executa interogări și a rezultatelor interogării de hartă la obiectele java.
- Hibernate folosește proprietățile setate în fișierul XML al configurației Hibernate pentru a mapa rezultatele interogării cu obiecte java.
- Conexiunea la baza de date este creată folosind o sesiune care ajută la salvarea și preluarea obiectului java persistent.
- Sesiunea este creată folosind interfața de fabrică Session. Într-un caz ideal, ar trebui să existe o singură fabrică de sesiuni pe baza de date.
Comparație dintre Hibernate și JDBC
Iată un tabel de comparație care arată o comparație între hibernare și JDBC:
Hibernare | JDBC |
Hibernate conține clase de beton care oferă logică plăcilor cazanului. | JDBC oferă numai interfețe și clase abstracte. |
Toate excepțiile aruncate de hibernare sunt debifate. | Toate clasele din JDBC aruncă excepții verificate. |
Nu necesită mai multă gestionare a resurselor și internă. | Necesită mai multă gestionare a resurselor precum deschiderea și închiderea resurselor. |
Stochează obiecte java direct. | Nu poate stoca obiecte direct. |
Suportă interogări independente de bază de date. | Suportă interogări specifice bazei de date. |
Suporta Cache. | Nu suportă cache. |
Susțineți încărcarea leneșă | Nu suportă încărcarea leneșă. |
Arhitectură de cadru hibernată
Hibernate urmărește arhitectura stratificată și are următoarele straturi:
- Stratul de aplicații Java
- Strat hibernat
- Backend API Layer
- Strat de baze de date
Stratul de hibernare conține următoarele componente care sunt următoarele:
1. Obiectul de configurare hibernant
Acesta este primul obiect pe care trebuie să-l creăm pentru a stabili o conexiune la baza de date folosind hibernare. Ar trebui creată în mod ideal o singură dată, în timpul inițializării aplicației. Obiectul de configurare oferă următoarele:
- Conexiune la baza de date: conexiunea la baza de date este stabilită folosind unul sau mai multe fișiere de configurare. Fișierele sunt hibernate .properties și hibernate.cfg.xml.
- Mapare: Aceasta creează o mapare între clasele java și tabelele bazelor de date relaționale.
2. Fabrica de sesiuni
Obiectul de configurare creat la pasul 1 este utilizat pentru a crea un obiect din fabrică de sesiune, care face ca configurația de hibernare să fie gata folosind fișierul de configurație furnizat și să creeze loc pentru crearea obiectului de sesiune. Întrucât fabrica de sesiuni este un obiect greu, de obicei este creată o singură dată în faza de pornire a aplicației. Este nevoie de obiect de fabrică cu sesiuni multiple în cazul în care trebuie stabilite conexiuni la baze de date multiple. De asemenea, fabrica de sesiuni este un obiect sigur de thread.
3. Sesiunea
Obiectul sesiunii stabilește o conexiune fizică cu baza de date. Este un obiect ușor și ar trebui creat de fiecare dată când este necesară interacțiunea cu baza de date. Dacă un obiect trebuie să fie persistat sau trebuie să fie preluat, acesta poate fi realizat doar folosind obiectul sesiunii. Obiectul sesiunii ar trebui închis imediat ce operațiunea necesară este finalizată, deoarece acestea nu sunt filetate.
4. Tranzacție
Este un obiect opțional și reprezintă o unitate de lucru desfășurată cu baza de date. Un obiect de tranzacție asigură că fie toate operațiunile trebuie să fie executate, nici una dintre ele nu trebuie să fie executate. Este un obiect cu o singură filetare și o viață scurtă.
5. Obiect de interogare
Acest obiect folosește limbajul de interogare structurat (SQL) sau Hibernate Query Language (HQL) pentru a prelua date din baza de date și a instantana obiectele. Un obiect de interogare poate fi utilizat pentru a limita ieșirea returnată de la interogare, pentru a lega parametrii de interogare și pentru a executa interogarea.
Întrebări
Aici vom executa câteva întrebări care vor clarifica lucrurile. Să luăm în considerare un angajat al entității având o clasă structurată ca:
Cod:
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 necesită un fișier XML numit hibernate.cfg.xml care arată:
Cod:
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hibernatetest
edubca
edubcauser
org.hibernate.dialect.MySQLDialect
create
Mai jos este codul pentru a arăta modul în care inserarea și regăsirea au loc în baza de date folosind hibernare:
Cod:
//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());
)
ieşire:
Un angajat cu ID 1 poartă numele Yash are un salariu de 40000.
Un angajat cu ID 2 poartă numele Aman are un salariu de 42000.
Concluzie
În acest articol, am tratat hibernarea în detaliu, despre arhitectura sa, comparativ cu JDBC și exemple de cod. De asemenea, am observat că hibernatul oferă un mod simplu și eficient de interacțiune cu baza de date.
Articole recomandate
Acesta este un ghid al cadrului Hibernate. Aici discutăm arhitectura, componentele și compararea hibernării și JDBC cu exemple de cod. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -
- Cadre în Java
- Ce este cadrul de automatizare a testelor?
- Cadrul HADOOP
- .Net Core vs .Net Framework
- Grafica 2D în Java
- Aruncă vs Aruncă | Top 5 diferențe pe care ar trebui să le știi