Dvaletilstand - Komplet guide til dvaletilstand

Indholdsfortegnelse:

Anonim

Hvad er dvaletilstand?

Hibernate er en open-source objekt-relationel mapping (ORM) baseret java-persistensramme. Det er et ORM-kortlægningsværktøj i java. Dvaletilstand er designet med behovet for at reducere kompleksiteten, mens der forbindes en relationsdatabase via java. Dvale rammer er designet til at kortlægge java-objekter til implementering af objektorienteret programmering i den relationelle database. Sådan dvale forbindes til den relationelle database for at udføre forespørgsler:

  • Dvale forbindes direkte med den specificerede database og bruger dvalet forespørgselssprog (HQL) til at udføre forespørgsler og kortforespørgselsresultater til java-objekter.
  • Dvaletilstand bruger egenskaber, der er indstillet i dvale-konfigurations XML-fil til at kortlægge forespørgselsresultater til java-objekter.
  • Databaseforbindelsen oprettes ved hjælp af en session, der hjælper med at gemme og hente det vedvarende java-objekt.
  • Sessionen oprettes ved hjælp af Session-fabriksgrænsefladen. I et ideelt tilfælde bør der kun være en session fabrik pr. Database.

Sammenligning af dvaletilstand og JDBC

Her er en sammenligningstabel, der viser en sammenligning mellem dvaletilstand og JDBC:

DvaleJDBC
Dvaletilstand indeholder betonklasser, der leverer kedelpladslogik.JDBC leverer kun grænseflader og abstrakte klasser.
Alle undtagelser, der kastes i dvaletilstand, er ikke markeret.Alle klasser i JDBC kaster kontrollerede undtagelser.
Det kræver ikke mere ressourcestyring og gør det internt.Det kræver mere ressourcestyring som åbning og lukning af ressourcer.
Opbevarer java-objekter direkte.Det kan ikke gemme genstande direkte.
Understøtter uafhængige forespørgsler til databaser.Understøtter databasespecifikke forespørgsler.
Understøtter cache.Det understøtter ikke cache.
Støtt doven belastning.Det understøtter ikke doven belastning.

Hibernate Framework Architecture

Dvaletilstand følger den lagdelte arkitektur og har følgende lag:

  • Java-applikationslag
  • Dvalet lag
  • Backend API-lag
  • Databaselag

Dvalet lag indeholder følgende komponenter, der er som følger:

1. Dvale konfigurationsobjekt

Dette er det første objekt, man skal oprette for at etablere databaseforbindelse ved hjælp af dvaletilstand. Det skal ideelt oprettes en gang under applikationsinitialisering. Konfigurationsobjektet indeholder følgende:

  • Databaseforbindelse: Databaseforbindelse oprettes ved hjælp af en eller flere konfigurationsfiler. Filerne er dvalet .properties og hibernate.cfg.xml.
  • Kortlægning: Dette skaber en kortlægning mellem java-klasser og relationelle databasetabeller.

2. session fabrik

Konfigurationsobjekt oprettet i trin 1 bruges til at oprette et sessionfabriksobjekt, der gør dvaletilstandskonfiguration klar ved hjælp af den medfølgende konfigurationsfil og gøre plads for, at sessionobjekt oprettes. Da sessionfabrikken er et tungt objekt, oprettes det normalt én gang i startfasen af ​​applikationen. Der er et behov for fabriksobjekt med flere sessioner, hvis der skal etableres forbindelser til flere databaser. Session fabrikken er også et tråd-sikkert objekt.

3. session

Sessionsobjektet opretter en fysisk forbindelse med databasen. Det er et letvægtsobjekt og skal oprettes, hver gang der kræves interaktion med databasen. Hvis et objekt skal vedvares eller skal hentes, kan det kun ske ved hjælp af sessionobjektet. Sessionsobjektet skal lukkes, så snart den påkrævede operation er afsluttet, fordi de ikke er gevindsikre.

4. Transaktion

Det er et valgfrit objekt og repræsenterer en enhed af arbejde udført med databasen. Et transaktionsobjekt sikrer, at enten alle operationer skal udføres, eller ingen af ​​dem skal udføre. Det er et enkelt-gevind og kortvarigt objekt.

5. Forespørgselsobjekt

Dette objekt bruger struktureret forespørgselssprog (SQL) eller Hibernate Query Language (HQL) til at hente data fra databasen og instantisere objekter. Et Query-objekt kan bruges til at begrænse output returneret fra forespørgslen, binde forespørgselsparametre og udføre forespørgslen.

forespørgsler

Her vil vi udføre nogle forespørgsler, der gør tingene mere tydelige. Lad os betragte en enhedsmedarbejder, der har en struktur struktureret 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
)

Dvaletilstand kræver en XML-fil kaldet hibernate.cfg.xml, der ligner:

Kode:


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

Nedenfor er koden for at vise, hvordan indsættelse og hentning finder sted i databasen ved hjælp af dvaletilstand:

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

Produktion:

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

Konklusion

I denne artikel har vi dækket dvaletilstand i detaljer om dens arkitektur, sammenligning med JDBC og kodeeksempler. Vi bemærkede også, at dvaletilstand giver en enkel og effektiv måde at interagere med databasen på.

Anbefalede artikler

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

  1. Rammer i Java
  2. Hvad er testautomatiseringsrammer?
  3. HADOOP-rammer
  4. .Net Core vs. Net Framework
  5. 2D-grafik i Java
  6. Kast vs kaster | Top 5 forskelle, du burde vide