Hvad er HQL?

HQL er en forkortelse for dvalet forespørgselssprog. Dvaletilstand er en platform til at forbinde de traditionelle databaser til objektorienteret sprog (specifikt JAVA). Det er et forespørgselssprog i dvaletilstand ligner SQL i traditionel RDBMS undtagen for det faktum, at vi bruger en enhed i HQL i stedet for tabeller. Det er skrevet indlejret i JAVA-kode, og forskellige funktioner fra JAVA-biblioteket bruges til at konvertere HQL til SQL. Det kan kaldes som et objektorienteret sprog præget af SQL-forespørgsler. Det er et fleksibelt og brugervenligt sprog, der har sin egen syntaks og grammatik til at hente, gemme, opdatere oplysninger fra databasen. Det reducerer impedansmatchet mellem JAVA og RDBMS.

Hvorfor har vi brug for HQL?

Da betydningen af ​​JAVA som sprog for platforme som internettet øges, finder vi det mere relevant at forbinde vores JAVA-baserede applikation til back end ved hjælp af dvaletilstand. Dvaletilstand bruger i stedet HQL-sprog til at etablere forbindelsen mellem database og frontend.

Vi har brug for HQL, når vi vil vælge nogle bestemte felter og kolonner i henhold til vores krav. Metoder, der blev anvendt tidligere, var ikke effektive nok til at bore ned til dette niveau for eksempelvis at hente resultatsættet eller datasættet fra databasen som en hel post med antallet af rækker og kolonner. Denne tilgang giver ikke fleksibiliteten til at indsnævre søgningen og gør applikationen tung og træg. Denne tilgang bruges af JDBC Connectors, asp.net og mange flere sprog. Brug af HQL reducerer dette tidsrum og giver specifikke resultater. Derfor er det mere relevant at blive brugt i et realtidsmiljø, hvor JAVA er involveret i frontend.

Hvordan fungerer HQL?

HQL er et XML-filformat, der forbinder java fra forenden til databasen i bagenden. De SQL-forespørgsler, som vi udløser direkte i databasen ved hjælp af sql-forespørgsler, kan også skrives i hql. HQL har sin egen syntaks, hvor vi kan skrive forespørgslen og derefter konverteres denne forespørgsel til SQL-sætninger, som databasen kan forstå. Dette er skrevet på java-sprog for at reducere misforholdet mellem impedansen.

HQL er et ikke-følsomt sprog bortset fra navnet på klasser og enheder. For eksempel: org.hibernate.eg.test er ikke lig med org.hibernate.eg.Test siden “test” og “Test” er to forskellige enheder i HQL.

Bemærk: Vi kan bruge SQL i HQL-forespørgsler direkte ved hjælp af den oprindelige kode.

Fordele ved HQL

Der er flere fordele ved HQL som sprog:

  1. Koderen har ikke nogen forpligtelse til at lære SQL-sproget.
  2. HQL er objektorienteret, og dens ydeevne er god, når vi forbinder vores front-end-applikation med backend.
  3. HQL har cache-hukommelse og forbedrer dermed hastigheden.
  4. HQL understøtter populære funktioner i OOPs-koncepter som polymorfisme, arv og tilknytning.

Syntaks sammen med HQL Query-eksempler

Nogle enkle forespørgsler i dvaletilstand ser ud:

FRA klausul:

From eg.Test or From Test.

Denne erklæring returnerer alle forekomster af klassen. I dette tilfælde er det Test. Vi kan også oprette et alias til f.eks. Fra test som test. Her er "test" testens alias. Dette alias kan derefter bruges 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 erklæring bruges, når vi vil oprette aliasser til hovedklasserne i HQL. Dette er en nyttig teknik, hvis vi har lange forespørgsler. Vi kan ganske enkelt tildele forespørgslen til aliaset og derefter bruge det alias til yderligere datahåndtering. Aliasing kan også udføres uden AS-nøgleordet. For eksempel: 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 klausul bruges, når vi søger efter bestemte data i databasetabellen. Så her, hvis vi søger efter en bestemt post på grundlag af den testkode, som vi har, bruges denne klausul i forespørgslen. Dette vil hjælpe med at indsnævre søgekriteriet. Hvis vi giver den primære nøgle f i tabellen i hvor klausul, skal vi se den betydelige forbedring i søgehastighed.

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 klausul bruges, hvis vi vil vælge en bestemt kolonne fra databasetabellen. Dette er en af ​​måderne til at indsnævre søgekriteriet på. Uanset hvilket feltnavn vi giver i den valgte klausul, der kun vil blive valgt. Det er nyttigt at hente en lille mængde data, hvis vi har specifikke oplysninger 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 klausul i forespørgslen kan bruges til at slette et eller flere objekter fra den tilsluttede databasetabel. Både de "forbigående" og "vedvarende" objekter kan slettes b på denne måde. Dette er den enkle forespørgsel til at slette et vilkårligt antal felter eller tabeller helt fra databasen. Dette skal bruges omhyggeligt.

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

Konklusion

Derfor er HQL et elegant objektorienteret sprog, der bygger bro mellem objektorienteret JAVA og databasestyringssystem. Med den højeste markedsandel er dvalet forespørgselssprog ved at blive et populært sprog at arbejde på.

Anbefalede artikler

Dette er en guide til HQL. Her diskuterer vi, hvorfor har vi brug for HQL med fordelene, arbejdet og syntaks sammen med forespørgseksempler. Du kan også se på de følgende artikler for at lære mere -

  1. Dvaletilstand
  2. Dvaletid
  3. Dvale Interview spørgsmål
  4. Hvad er Java Dvale?

Kategori: