Hibernate Framework - Komplett guide til dvalemodus

Innholdsfortegnelse:

Anonim

Hva er Hibernate Framework?

Hibernate er en åpen kildekode-objekt-relasjonell kartlegging (ORM) basert java-utholdenhetsramme. Det er et ORM-kartleggingsverktøy i java. Dvalemodus er designet med behov for å redusere kompleksiteten mens du kobler en relasjonsdatabase gjennom java. Hibernate framework er designet for å kartlegge java-objekter for å implementere objektorientert programmering i den relasjonsdatabasen. Slik dvalemodus kobler til relasjonsdatabasen for å utføre spørsmål:

  • Dvalemodus kobles direkte til den spesifiserte databasen og bruker hibernate query language (HQL) for å utføre spørringer og kartkjøringsresultater til java-objekter.
  • Dvalemodus bruker egenskaper som er satt i dvalemodus XML-fil for å kartlegge spørreresultater til java-objekter.
  • Databaseforbindelsen opprettes ved hjelp av en økt som hjelper til med å lagre og hente det vedvarende java-objektet.
  • Økten er opprettet ved å bruke fabrikkgrensesnittet for økt. I et ideelt tilfelle bør det bare være en øktfabrikk per database.

Sammenligning av dvalemodus og JDBC

Her er en sammenligningstabell som viser en sammenligning mellom dvalemodus og JDBC:

HibernateJDBC
Dvalemodus inneholder betongklasser som gir kjelplate-logikk.JDBC gir bare grensesnitt og abstrakte klasser.
Alle unntak som kastes i dvale, er ikke avkrysset.Alle klasser i JDBC kaster sjekket unntak.
Det krever ikke mer ressursstyring og gjør det internt.Det krever mer ressursstyring som åpning og lukking av ressurser.
Lagrer java-objekter direkte.Den kan ikke lagre objekter direkte.
Støtter uavhengige spørsmål i databasen.Støtter databasespesifikke spørsmål.
Støtter hurtigbufring.Det støtter ikke hurtigbufring.
Støtt lat lading.Det støtter ikke lat lasting.

Hibernate Framework Architecture

Dvale følger den lagdelte arkitekturen og har følgende lag:

  • Java-applikasjonslag
  • Dvale lag
  • Backend API Layer
  • Databaselag

Dvale lag inneholder følgende komponenter som er som følger:

1. Dvale konfigurasjonsobjekt

Dette er det første objektet man må lage for å etablere databaseforbindelse ved bruk av dvalemodus. Det bør ideelt opprettes en gang under applikasjonsinitieringen. Konfigurasjonsobjektet inneholder følgende:

  • Databasetilkobling: Databaseforbindelse etableres ved hjelp av en eller flere konfigurasjonsfiler. Filene er dvalemodus. Eiendommer og dvalemodus.cfg.xml.
  • Kartlegging: Dette skaper en kartlegging mellom java-klasser og relasjonelle databasetabeller.

2. sesjonsfabrikk

Konfigurasjonsobjekt opprettet i trinn 1 brukes til å opprette et sesjonsfabrikkobjekt som gjør dvalemoduskonfigurasjon klar ved å bruke den medfølgende konfigurasjonsfilen og legge til rette for at sesjonsobjekt kan opprettes. Siden sesjonsfabrikken er et tungt objekt, opprettes det vanligvis en gang i startfasen av applikasjonen. Det er behov for fabrikkobjekt for flere økter i tilfelle det må opprettes tilkoblinger til flere databaser. Sesjonsfabrikken er også et tråd-sikkert objekt.

3. økt

Øktobjektet oppretter en fysisk forbindelse med databasen. Det er et lett objekt og bør opprettes hver gang det kreves interaksjon med databasen. Hvis et objekt trenger å være vedvarende eller må hentes, kan det bare gjøres ved å bruke øktobjektet. Øktobjektet skal stenges så snart den nødvendige operasjonen er fullført fordi de ikke er trådsikker.

4. Transaksjon

Det er et valgfritt objekt og representerer en enhet som er utført med databasen. Et transaksjonsobjekt sikrer at enten alle operasjoner må utføres, eller at ingen av dem må utføre. Det er et enkeltrådig og kortvarig objekt.

5. Spørringsobjekt

Dette objektet bruker strukturert spørrespråk (SQL) eller Hibernate Query Language (HQL) for å hente data fra databasen og instantisere objekter. Et Query-objekt kan brukes til å begrense output som returneres fra spørringen, binde spørringsparametere og utføre spørringen.

spørringer

Her vil vi utføre noen spørsmål som vil gjøre ting mer oversiktlig. La oss vurdere en ansatt som har en klasse som er strukturert som:

Kode:

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 krever en XML-fil kalt hibernate.cfg.xml som ser ut:

Kode:


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

Nedenfor er koden for å vise hvordan innsetting og henting foregår i databasen ved bruk av dvalemodus:

Kode:

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

Produksjon:

En ansatt med ID 1 har Navn Yash har en lønn på 40000.
En ansatt med ID 2 har Navn Aman har en lønn på 42000.

Konklusjon

I denne artikkelen har vi dekket dvalemodus i detalj, om dens arkitektur, sammenligning med JDBC og kodeeksempler. Vi bemerket også at dvalemodus gir en enkel og effektiv måte å samhandle med databasen på.

Anbefalte artikler

Dette er en guide til Hibernate Framework. Her diskuterer vi arkitektur, komponenter og sammenligning av dvalemodus og JDBC med kodeeksempler. Du kan også se på følgende artikler for å lære mer -

  1. Rammer i Java
  2. Hva er testautomatiseringsrammer?
  3. HADOOP Framework
  4. .Net Core vs. Net Framework
  5. 2D-grafikk i Java
  6. Kast vs kaster | Topp 5 forskjeller du burde vite