Mi a HQL?

A HQL a hibernált lekérdezési nyelv rövidítése. A Hibernate egy olyan platform, amely a hagyományos adatbázisokat objektum-orientált nyelvhez (konkrétan JAVA) köti. Ez a lekérdezési nyelv hibernált állapotban hasonló az SQL-hez a hagyományos RDBMS-ben, azzal a különbséggel, hogy a HQL-ben az entitásokat táblák helyett használjuk. A Java kódba beágyazva van, és a JAVA könyvtár különféle funkcióit használják a HQL konvertálására SQL formátumra. Objektumorientált nyelvként, SQL lekérdezés-rel dombornyomva hívható. Ez egy rugalmas és felhasználóbarát nyelv, amelynek saját szintaxisa és nyelvtana van az információk beolvasására, tárolására és frissítésére az adatbázisból. Csökkenti a JAVA és az RDBMS impedancia-eltérését.

Miért van szükségünk HQL-re?

Mivel a JAVA mint az olyan platformok nyelve jelentőségének növekedése, mint például az internet, relevánsabbnak találjuk a JAVA-alapú alkalmazásunk összekapcsolását a hátsó oldalra hibernált segítségével. A Hibernálás a HQL nyelvet használja az adatbázis és a kezelőfelület közötti kapcsolat létrehozása helyett.

Szükségünk van HQL-re, amikor bizonyos mezőket és oszlopokat akarunk kiválasztani az igényeinknek megfelelően. A korábban elfogadott módszerek nem voltak elég hatékonyak ahhoz, hogy erre a szintre fussonak, például az eredménykészlet vagy az adatkészlet lekérése az adatbázisból, a sorok és oszlopok számát tartalmazó egész rekordként. Ez a megközelítés nem ad rugalmasságot a keresés szűkítésére, és az alkalmazást nehéz és lassúvá teszi. Ezt a megközelítést a JDBC csatlakozók, az asp.net és még sok más nyelv használja. A HQL használata csökkenti ezt az időrést, és konkrét eredményeket biztosít. Ezért sokkal relevánsabb, ha valós idejű környezetben használják, ahol a JAVA részt vesz a front-endban.

Hogyan működik a HQL?

A HQL egy XML fájlformátum, amellyel a java összekapcsolódik a kezelőfelület és a hátsó adatbázis adatbázisával. Az SQL lekérdezések, amelyeket közvetlenül az sql lekérdezésekkel hajtunk végre az adatbázisban, hql-ben is írhatók. A HQL-nek megvan a saját szintaxisa, ahol el tudjuk írni a lekérdezést, majd a lekérdezést SQL utasításokká konvertáljuk, amelyek az adatbázis érthetők. Ezt java nyelven írják, hogy csökkentsék az impedancia eltérését.

A HQL az egyes kis- és nagybetűk között érzékeny nyelv, kivéve az osztályok és entitások nevét. Például: az org.hibernate.eg.test nem egyenlő az org.hibernate.eg.Testtel, mivel a „teszt” és a „teszt” két különféle entitás a HQL-ben.

Megjegyzés: Az SQL-t közvetlenül a natív kóddal használhatjuk a HQL-lekérdezésekben.

A HQL előnyei

A HQL mint nyelv számos előnye van:

  1. A kódolónak nincs kötelezettsége az SQL nyelv megtanulására.
  2. A HQL objektum-orientált, és jó teljesítményt nyújt, ha a front-end alkalmazásunkat összekapcsoljuk a háttérrel.
  3. A HQL gyorsítótár-memóriával rendelkezik, és ezzel javítja a sebességet.
  4. A HQL támogatja az OOP-fogalmak olyan népszerű jellemzőit, mint a polimorfizmus, az öröklés és az asszociáció.

Szintaxis és a HQL lekérdezési példák

Néhány egyszerű lekérdezés hibernált állapotban néz ki:

FROM záradék:

From eg.Test or From Test.

Ez az utasítás visszaadja az osztály összes példányát. Ebben az esetben a Test. Ezenkívül létrehozhatunk álnevet például: a Tesztből mint tesztből. Itt a „teszt” a Test álneve. Ez az álnév később felhasználható az osztály helyett.

1. példa

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.

Ezt az állítást akkor használjuk, ha álneveket akarunk létrehozni a HQL fő osztályaihoz. Ez egy hasznos technika abban az esetben, ha hosszú kérdéseink vannak. Egyszerűen hozzárendelhetjük a lekérdezést az álnévhez, majd ezt az álnevet felhasználhatjuk további adatkezeléshez. Az álnevet az AS kulcsszó nélkül is el lehet végezni. Például: a T. tesztből

2. példa

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.

Ezt a záradékot akkor használjuk, amikor egy adott adatra keresünk az adatbázis-táblában. Tehát itt, ha egy adott rekordot keresünk egy tesztkód alapján, amely megvan, akkor ezt a kikötést használjuk a lekérdezésben. Ez elősegíti a keresési kritérium szűkítését. Ha az elsődleges f kulcsot adjuk meg annak a táblázatnak, ahol a záradék van, akkor látni kell a keresési sebesség jelentős javulását.

3. példa

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.

Ezt a kikötést akkor kell használni, ha egy adott oszlopot ki akarunk választani az adatbázis táblából. Ez a keresési kritérium szűkítésének egyik módja. Bármelyik mezőnevet is megadjuk a kiválasztási záradékban, csak azt választjuk ki. Hasznos kis mennyiségű adat beolvasása, ha erről specifikus információk vannak.

4. példa

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

A lekérdezés ezen kikötése felhasználható egy vagy több objektum törlésére a csatlakoztatott adatbázis táblából. Ilyen módon mind a „átmeneti”, mind a „perzisztens” objektumok törölhetők. Ez az az egyszerű lekérdezés, amelynek segítségével tetszőleges számú mezőt vagy táblát törölhet az adatbázisból. Ezt óvatosan kell használni.

5. példa

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

Következtetés

Ezért a HQL egy elegáns objektum-orientált nyelv, amely áthidalja az objektum-orientált JAVA és az adatbázis-kezelő rendszer közötti szakadékot. A legnagyobb piaci részesedéssel a hibernált lekérdezési nyelv egyre népszerűbb nyelv, amelyen dolgozik.

Ajánlott cikkek

Ez egy útmutató a HQL-hez. Itt megvitatjuk, hogy miért van szükség a HQL-re az Előnyök, a Munka és a Szintaxis, a Lekérdezési példákkal együtt. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -

  1. Hibernált keret
  2. Hibernált ülés
  3. Hibernált interjúkérdések
  4. Mi a Java Hibernate?

Kategória: