Ce este HQL?

HQL este o prescurtare pentru limbajul de interogare hibernat. Hibernate este o platformă pentru conectarea bazelor de date tradiționale la un limbaj orientat pe obiecte (în special JAVA). Este un limbaj de interogare în hibernare este similar cu SQL în RDBMS tradițional, cu excepția faptului că folosim o entitate în HQL în loc de tabele. Este scris încorporat în codul JAVA și diferite funcții din biblioteca JAVA sunt utilizate pentru a converti HQL în SQL. Poate fi numit ca limbaj orientat pe obiect gravat cu instrucțiuni de interogare SQL. Este un limbaj flexibil și ușor de utilizat, având propria sintaxă și gramatică pentru a prelua, stoca și actualiza informațiile din baza de date. Reduce nepotrivirea impedanței dintre JAVA și RDBMS.

De ce avem nevoie de HQL?

Deoarece importanța JAVA ca limbă pentru platforme precum internetul este în creștere, considerăm că este mai relevant să conectăm aplicația noastră bazată pe JAVA la back-end cu ajutorul hibernării. Hibernate folosește în schimb limbajul HQL pentru a stabili conexiunea între baza de date și front-end.

Avem nevoie de HQL atunci când dorim să selectăm anumite câmpuri și coloane în funcție de cerințele noastre. Metodele adoptate anterior nu au fost suficient de eficiente pentru a descărca la acest nivel, de exemplu, preluarea setului de rezultate sau a setului de date din baza de date ca o înregistrare întreagă având numărul de rânduri și coloane. Această abordare nu oferă flexibilitatea de a restrânge căutarea și face ca aplicația să fie grea și lentă. Această abordare este folosită de JDBC Connectors, asp.net și multe alte limbi. Utilizarea HQL reduce acest interval de timp și oferă rezultate specifice. Prin urmare, este mai relevant să fie utilizat într-un mediu în timp real în care JAVA este implicat în partea frontală.

Cum funcționează HQL?

HQL este un format de fișier XML pentru a conecta java din partea frontală la baza de date din partea din spate. Interogările SQL pe care le lansăm direct în baza de date folosind interogări sql pot fi scrise și în hql. HQL are propria sintaxă unde putem scrie interogarea și apoi această interogare este transformată în instrucțiuni SQL care pot fi înțelese de baza de date. Acest lucru este scris în limbajul java pentru a reduce nepotrivirea impedanței.

HQL este un limbaj care nu contează între majuscule și minuscule, cu excepția numelui de clase și entități. De exemplu: org.hibernate.eg.test nu este egal cu org.hibernate.eg.Test deoarece „testul” și „Testul” sunt două entități diferite în HQL.

Notă: Putem utiliza SQL în interogări HQL direct folosind codul autohton.

Avantajele HQL

Există mai multe avantaje ale limbajului HQL ca limbă:

  1. Coderul nu are nicio obligație de a învăța limbajul SQL.
  2. HQL este orientat pe obiecte și performanțele sale sunt bune atunci când conectăm aplicația front-end la backend.
  3. HQL are memorie în cache și, prin urmare, îmbunătățește viteza.
  4. HQL acceptă caracteristici populare ale conceptelor OOP precum polimorfism, moștenire și asociere.

Sintaxa împreună cu exemple de interogare HQL

Unele întrebări simple în hibernare arată ca:

Clauza FROM:

From eg.Test or From Test.

Această declarație va returna toate instanțele clasei. În acest caz, este Test. De asemenea, putem crea un alias de exemplu: From Test ca test. Aici „test” este aliasul Testului. Acest alias poate fi folosit mai târziu în loc de clasă.

Exemplul # 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.

Această afirmație este folosită atunci când dorim să creăm alias la clasele principale de HQL. Aceasta este o tehnică utilă în cazul în care avem întrebări lungi. Putem pur și simplu să alocăm interogarea pentru alias și apoi să folosim acel alias pentru tratarea ulterioară a datelor. Aliasing-ul se poate face și fără cuvântul cheie AS. De exemplu: De la testul T.

Exemplul # 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.

Această clauză este folosită atunci când căutăm anumite date în tabelul bazei de date. Aici, dacă căutăm o anumită înregistrare pe baza codului de test pe care îl avem, această clauză este folosită în interogare. Acest lucru va ajuta la reducerea criteriului de căutare. Dacă dăm cheia primară f tabelul în care se află clauza, ar trebui să vedem îmbunătățirea semnificativă a vitezei de căutare.

Exemplul # 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.

Această clauză este folosită dacă dorim să selectăm o anumită coloană din tabelul bazei de date. Acesta este unul dintre modurile de a restrânge criteriul de căutare. Oricare ar fi numele de câmp pe care îl dăm în clauza selectată, care va fi selectat. Este util să aducem o cantitate mică de date dacă avem informații specifice despre acestea.

Exemplul # 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";

Această clauză din interogare poate fi folosită pentru a șterge unul sau mai multe obiecte din tabelul bazei de date conectate. Ambele obiecte „tranzitorii” și „persistente” pot fi șterse în acest fel. Aceasta este interogarea simplă pentru a șterge din baza de date orice număr de câmpuri sau tabele. Acest lucru trebuie utilizat cu atenție.

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

Concluzie

Prin urmare, HQL este un limbaj elegant orientat pe obiecte, care combină diferența dintre JAVA orientat pe obiecte și sistemul de gestionare a bazelor de date. Cu cea mai mare cotă de piață, limbajul de interogare hibernat devine un limbaj popular la care să lucrezi.

Articole recomandate

Acesta este un ghid pentru HQL. Aici vom discuta de ce avem nevoie de HQL cu avantajele, de lucru și sintaxa împreună cu exemple de interogare. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Cadrul Hibernat
  2. Sesiune hibernată
  3. Întrebări la interviu Hibernate
  4. Ce este Java Hibernate?