Vad är HQL?

HQL är en förkortning för viloläget frågespråk. Hibernate är en plattform för att ansluta de traditionella databaserna till objektorienterat språk (specifikt JAVA). Det är ett frågespråk i viloläge liknar SQL i traditionell RDBMS förutom att vi använder en enhet i HQL istället för tabeller. Det är skrivet inbäddat i JAVA-kod och olika funktioner från JAVA-biblioteket används för att konvertera HQL till SQL. Det kan kallas som ett objektorienterat språk präglat med SQL-frågeställningar. Det är ett flexibelt och användarvänligt språk med sin egen syntax och grammatik för att hämta, lagra, uppdatera information från databasen. Det minskar impedansmatchningen mellan JAVA och RDBMS.

Varför behöver vi HQL?

Eftersom vikten av JAVA som språk för plattformar som internet ökar, finner vi mer relevant att ansluta vår JAVA-baserade applikation till backend med hjälp av viloläge. Hibernate använder HQL-språk istället för att upprätta anslutningen mellan databas och front-end.

Vi behöver HQL när vi vill välja vissa fält och kolumner enligt våra krav. Metoder som använts tidigare var inte tillräckligt effektiva för att borra ner till denna nivå, till exempel att hämta resultatuppsättningen eller datamängden från databasen som en hel post med antalet rader och kolumner. Detta tillvägagångssätt ger inte flexibiliteten att begränsa sökningen och gör applikationen tung och trög. Denna strategi används av JDBC Connectors, asp.net och många fler språk. Användning av HQL minskar denna tidslucka och ger specifika resultat. Därför är det mer relevant att användas i en realtidsmiljö där JAVA är involverad i frontend.

Hur fungerar HQL?

HQL är ett XML-filformat för att länka java från frontend till databasen i backend. SQL-frågor som vi avfyrar direkt i databasen med hjälp av sql-frågor kan också skrivas i hql. HQL har sin egen syntax där vi kan skriva frågan och sedan omvandlas den frågan till SQL-satser som kan förstås av databasen. Detta är skrivet på java-språk för att minska impedansmatchningen.

HQL är ett okänsligt språk med undantag för klasser och enheter. Till exempel: org.hibernate.eg.test är inte lika med org.hibernate.eg.Test eftersom “testet” och “Testet” är två olika enheter i HQL.

Obs: Vi kan använda SQL i HQL-frågor direkt med den inbyggda koden.

Fördelar med HQL

Det finns flera fördelar med HQL som språk:

  1. Kodaren har ingen skyldighet att lära sig SQL-språket.
  2. HQL är objektorienterad och dess prestanda är bra när vi kopplar vår front-applikation till backend.
  3. HQL har cacheminne och förbättrar därmed hastigheten.
  4. HQL stöder populära funktioner i OOP: s koncept som polymorfism, arv och förening.

Syntax tillsammans med HQL Query-exempel

Några enkla frågor i viloläge ser ut:

FRÅN klausul:

From eg.Test or From Test.

Detta uttalande kommer att returnera alla instanser i klassen. I det här fallet är det Test. Vi kan också skapa ett alias för t.ex.: Från Test som test. Här är "test" testets alias. Detta alias kan sedan användas senare istället för klass.

Exempel 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.

Detta uttalande används när vi vill skapa alias till huvudklasserna i HQL. Detta är en användbar teknik om vi har långa frågor. Vi kan helt enkelt tilldela frågan till aliaset och sedan använda det aliaset för vidare datahantering. Aliasing kan göras utan AS-nyckelordet också. För ex: Från test T.

Exempel 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.

Denna klausul används när vi söker efter en viss data i databastabellen. Så här om vi söker efter en viss post på grundval av den testkod som vi har så används denna klausul i frågan. Detta kommer att hjälpa till att begränsa sökningskriteriet. Om vi ​​ger den primära nyckeln f i tabellen i där avsnittet, bör vi se den betydande förbättringen i sökhastigheten.

Exempel 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.

Denna klausul används om vi vill välja en viss kolumn från databastabellen. Detta är ett av sätten att begränsa sökningskriteriet. Oavsett fältnamn som vi ger i markeringsklausulen endast som kommer att väljas. Det är användbart att hämta en liten mängd data om vi har specifik information om samma.

Exempel 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";

Denna klausul i frågan kan användas för att ta bort ett eller flera objekt från den anslutna databastabellen. Både de "övergående" och "ihållande" objekten kan raderas b på detta sätt. Detta är den enkla frågan för att radera valfritt antal fält eller tabeller helt från databasen. Detta bör användas noggrant.

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

Slutsats

Därför är HQL ett elegant objektorienterat språk som överbryggar klyftan mellan objektorienterat JAVA och databashanteringssystem. Med den högsta marknadsandelen blir viloläget frågespråk ett populärt språk att arbeta med.

Rekommenderade artiklar

Detta är en guide till HQL. Här diskuterar vi varför behöver vi HQL med fördelarna, arbeta och syntaxen tillsammans med frågaexempel. Du kan också titta på följande artiklar för att lära dig mer -

  1. Hibernate Framework
  2. Viloläge
  3. Hibernate Interview Questions
  4. Vad är Java Hibernate?

Kategori: