Mis on HQL?

HQL on hibernate päringkeele lühend. Hibernate on platvorm traditsiooniliste andmebaaside ühendamiseks objektorienteeritud keelega (täpsemalt JAVA). See on talveunerežiimis päringukeel sarnane SQL-ga traditsioonilises RDBMS-is, välja arvatud see, et me kasutame tabelites HQL-is olemi. See on kirjutatud manustatud JAVA-koodiga ja HQL-i muutmiseks SQL-i kasutatakse mitmesuguseid JAVA-teegi funktsioone. Seda võib nimetada objektorienteeritud keeleks, millele on sisse pressitud SQL päringulaused. See on paindlik ja kasutajasõbralik keel, millel on oma süntaks ja grammatika andmebaasist teabe hankimiseks, talletamiseks ja värskendamiseks. See vähendab takistuste erinevust JAVA ja RDBMS vahel.

Miks me vajame HQL-d?

Kuna JAVA kui Interneti-põhiste platvormide keele tähtsus kasvab, peame meie JAVA-põhise rakenduse tagaküljele talveune ühendamise jaoks asjakohasemaks. Hibernate kasutab andmebaasi ja kasutajaliidese vahelise ühenduse loomiseks selle asemel HQL-i keelt.

Vajame HQL-i, kui soovime valida meie nõudmiste järgi mõned konkreetsed väljad ja veerud. Varem vastu võetud meetodid ei olnud piisavalt tõhusad, et selle tasemeni uurida, näiteks tulemuste või andmekogumi toomine andmebaasist tervikuna, milles on ridade ja veergude arv. See lähenemisviis ei anna paindlikkust otsingu kitsendamiseks ning muudab rakenduse raskeks ja loiuks. Seda lähenemist kasutavad JDBC konnektorid, asp.net ja paljudes teistes keeltes. HQL kasutamine vähendab seda ajapilu ja annab konkreetsed tulemused. Seetõttu on asjakohasem kasutada reaalajas keskkonnas, kus JAVA on kaasatud esiotsa.

Kuidas HQL töötab?

HQL on XML-failivorming, mis ühendab Java-faili esiotsa andmebaasi tagaotsas. SQL-päringuid, mida me andmebaasis otse sql-päringuid kasutades käivitame, saab kirjutada ka hql-s. HQL-l on oma süntaks, kuhu saame päringu kirjutada ja seejärel teisendatakse see päring SQL-lauseteks, millest andmebaas aru saab. See on kirjutatud java keeles, et vähendada impedantsi mittevastavust.

HQL on tõstutundlik keel, välja arvatud klasside ja üksuste nimed. Näiteks: org.hibernate.eg.test ei ole võrdne org.hibernate.eg.Test, kuna “test” ja “Test” on HQL-is kaks erinevat üksust.

Märkus. Saame kasutada SQL-i HQL-päringutes otse loomuliku koodi abil.

HQL eelised

HQL kui keelel on mitmeid eeliseid:

  1. Kodeerijal puudub kohustus SQL keelt õppida.
  2. HQL on objektorienteeritud ja selle toimivus on hea, kui linkime oma esiotsa rakenduse taustaprogrammiga.
  3. HQL-l on vahemälu ja see parandab sellega kiirust.
  4. HQL toetab OOP-ide kontseptsioonide populaarseid funktsioone, nagu polümorfism, pärimine ja seostamine.

Süntaks koos HQL päringu näidetega

Mõned talvitunud lihtsad päringud näevad välja järgmised:

Klauslist:

From eg.Test or From Test.

See avaldus tagastab kõik klassi eksemplarid. Sel juhul on see Test. Samuti saame luua pseudonüümi näiteks: From Test as a test. „Test“ on siin testi varjunimi. Seda pseudonüümi saab hiljem klassi asemel kasutada.

Näide nr 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.

Seda avaldust kasutatakse siis, kui soovime luua varjundeid HQL-i põhiklassidele. See on kasulik tehnika juhuks, kui meil on pikki päringuid. Saame päringu lihtsalt varjunimele määrata ja seejärel kasutada seda varjunime edasiseks andmete töötlemiseks. Pseudonüümi saab teha ka ilma AS-i märksõnata. Nt: T-test.

Näide 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.

Seda klauslit kasutatakse konkreetsete andmete otsimisel andmebaasi tabelist. Nii et kui otsime konkreetset kirjet olemasoleva testkoodi alusel, kasutatakse seda klauslit päringus. See aitab otsingukriteeriumi kitsendada. Kui anname primaarvõtme f tabelis, kus klausel, peaksime nägema kiiruse märkimisväärset paranemist.

Näide 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.

Seda klauslit kasutatakse juhul, kui soovime valida andmebaasi tabelist kindla veeru. See on üks võimalus otsingukriteeriumi kitsendamiseks. Ükskõik millise välja nime me valikuklauslis anname, ainult see valitakse. Kasulik on tuua väike kogus andmeid, kui meil on selle kohta konkreetset teavet.

Näide 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";

Seda päringu klauslit saab kasutada ühe või mitme objekti kustutamiseks ühendatud andmebaasi tabelist. Nii "mööduvaid" kui ka "püsivaid" objekte saab sel viisil kustutada. See on lihtne päring andmebaasist suvalise arvu väljade või tabelite kustutamiseks. Seda tuleks ettevaatlikult kasutada.

Näide 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);

Järeldus

Seega on HQL elegantne objektorienteeritud keel, mis ületab lõhe objektorienteeritud JAVA ja andmebaasihaldussüsteemi vahel. Suurima turuosaga talveune päringute keel on muutumas populaarseks keeleks, millega töötada.

Soovitatavad artiklid

See on juhend HQL-le. Siin arutleme, miks vajame koos päringunäidetega eeliseid, töötamist ja süntaksit HQL. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Hibernate raamistik
  2. Hibernate sessioon
  3. Talveune intervjuu küsimused
  4. Mis on Java hibernate?

Kategooria: