Hva er HQL?

HQL er en forkortelse for dvalet spørrespråk. Hibernate er en plattform for å koble de tradisjonelle databasene til objektorientert språk (spesifikt JAVA). Det er et spørrespråk i dvalemodus ligner SQL i tradisjonell RDBMS bortsett fra at vi bruker en enhet i HQL i stedet for tabeller. Det er skrevet innebygd i JAVA-kode og forskjellige funksjoner fra JAVA-biblioteket brukes til å konvertere HQL til SQL. Det kan kalles som et objektorientert språk preget av SQL-spørringsuttalelser. Det er et fleksibelt og brukervennlig språk som har sin egen syntaks og grammatikk for å hente, lagre, oppdatere informasjon fra databasen. Det reduserer impedansmatchet mellom JAVA og RDBMS.

Hvorfor trenger vi HQL?

Ettersom viktigheten av JAVA som språk for plattformer som internett øker, finner vi det mer relevant å koble vår JAVA-baserte applikasjon til back end ved hjelp av dvalemodus. Hibernate bruker HQL-språk i stedet for å etablere forbindelsen mellom database og front-end.

Vi trenger HQL når vi ønsker å velge noen spesielle felt og kolonner i henhold til kravene våre. Metoder som ble brukt tidligere var ikke effektive nok til å bore ned til dette nivået, for eksempel å hente resultatsettet eller datasettet fra databasen som en hel post med antall rader og kolonner. Denne tilnærmingen gir ikke fleksibilitet til å begrense søket og gjør applikasjonen tung og treg. Denne tilnærmingen brukes av JDBC Connectors, asp.net og mange flere språk. Bruk av HQL reduserer denne tidsgapet og gir spesifikke resultater. Derfor er det mer relevant å bli brukt i et sanntidsmiljø der JAVA er involvert i frontend.

Hvordan HQL fungerer?

HQL er et XML-filformat for å koble java fra grensesnittet til databasen i bakenden. SQL-spørringene som vi avfyrer i databasen direkte ved bruk av sql-spørsmål, kan også skrives i hql. HQL har en egen syntaks der vi kan skrive spørringen, og deretter blir spørringen konvertert til SQL-setninger som kan forstås av databasen. Dette er skrevet på java-språk for å redusere misforholdet mellom impedansen.

HQL er et lite ufølsomt språk bortsett fra navnet på klasser og enheter. For eksempel: org.hibernate.eg.test er ikke lik org.hibernate.eg.Test siden “testen” og “Test” er to forskjellige enheter i HQL.

Merk: Vi kan bruke SQL i HQL-spørsmål direkte ved å bruke den innfødte koden.

Fordeler med HQL

Det er flere fordeler med HQL som språk:

  1. Koderen har ingen forpliktelser til å lære SQL-språket.
  2. HQL er objektorientert og ytelsen er god når vi kobler front-applikasjonen vår til backend.
  3. HQL har hurtigminne og forbedrer dermed hastigheten.
  4. HQL støtter populære funksjoner i OOP-konsepter som polymorfisme, arv og tilknytning.

Syntaks sammen med HQL Query-eksempler

Noen enkle spørsmål i dvalemodus ser ut:

FRA klausul:

From eg.Test or From Test.

Denne uttalelsen vil returnere alle forekomster av klassen. I dette tilfellet er det Test. Vi kan også lage et alias for f.eks: Fra test som test. Her er "test" aliaset til Test. Dette aliaset kan deretter brukes senere i stedet for klasse.

Eksempel 1

String hqlquery = "FROM Test";
Query q = session.createQuery(hqlquery);
List display = q.list();
AS Clause: From eg.Test AS T or From Test AS T.

Denne uttalelsen brukes når vi ønsker å opprette aliaser til hovedklassene i HQL. Dette er en nyttig teknikk i tilfelle vi har lange spørsmål. Vi kan ganske enkelt tilordne spørringen til aliaset og deretter bruke det aliaset for videre datahåndtering. Aliasing kan gjøres uten AS-nøkkelordet også. For eks: Fra test T.

Eksempel 2

String hqlquery = "FROM Test AS T";
Query q = session.createQuery(hqlquery);
List display = q.list();
WHERE Clause: From eg.Test T WHERE T.code=102 or From Test T WHERE T.code=102.

Denne klausulen brukes når vi søker etter bestemte data i databasetabellen. Så her hvis vi søker etter en bestemt post på grunnlag av testkoden som vi har, blir denne klausulen brukt i spørringen. Dette vil bidra til å begrense søkekriteriet. Hvis vi gir primærnøkkel for tabellen der ledd, så bør vi se den betydelige forbedringen i søkehastigheten.

Eksempel 3

String hqlquery = "FROM Test T WHERE T.code = 102";
Query q = session.createQuery(hqlquery);
List display = q.list();
SELECT Clause:
From eg. SELECT T.number FROM Test T.

Denne leddet brukes hvis vi vil velge en bestemt kolonne fra databasetabellen. Dette er en av måtene å begrense søkekriteriet. Uansett hvilket feltnavn vi gir i valgklausulen bare som vil bli valgt. Det er nyttig å hente en liten mengde data hvis vi har spesifikk informasjon om det samme.

Eksempel 4

String hql = "SELECT E.firstName FROM Employee E";
Query query = session.createQuery(hql);
List results = query.list();
DELETE Clause:
String hqlexample = "DELETE FROM Test " +
"WHERE code = : test_code";

Denne leddet i spørringen kan brukes til å slette ett eller flere objekter fra den tilkoblede databasetabellen. Både “forbigående” og “vedvarende” objekter kan slettes b på denne måten. Dette er den enkle spørringen for å slette et hvilket som helst antall felt eller tabeller helt fra databasen. Dette bør brukes nøye.

Eksempel 5

String hqlquery = "DELETE FROM Test " +
"WHERE code = : test_code";
Query q = session.createQuery(hqlquery);
q.setParameter("test_code", 102);
int display = q.executeUpdate();
System.out.println("Hence the number of rows modified are: " + display);

Konklusjon

Derfor er HQL et elegant objektorientert språk som overbryter gapet mellom objektorientert JAVA og databasesystem. Med den høyeste markedsandelen blir dvalemodus for å bli et populært språk å jobbe med.

Anbefalte artikler

Dette er en guide til HQL. Her diskuterer vi hvorfor trenger vi HQLmed fordelene, arbeidet og syntaks sammen med spørringseksempler. Du kan også se på følgende artikler for å lære mer -

  1. Dvale rammer
  2. Dvalemodus
  3. Dvale intervjuspørsmål
  4. Hva er Java Hibernate?