Mikä on HQL?

HQL on lyhenne hibernate-kyselykielestä. Hibernate on alusta, jolla perinteiset tietokannat voidaan yhdistää oliokeskeiseen kieliin (erityisesti JAVA). Se on lepotilassa oleva kyselykieli, joka on samanlainen kuin perinteisessä RDBMS: ssä SQL, paitsi että käytämme HQL-yksikköä taulukkojen sijasta. Se on kirjoitettu upotettuna JAVA-koodiin ja JAVA-kirjaston erilaisia ​​toimintoja käytetään muuntamaan HQL SQL: ksi. Sitä voidaan kutsua oliokeskeiseksi kieleksi, joka on kohokuvioitu SQL-kyselylausekkeilla. Se on joustava ja käyttäjäystävällinen kieli, jolla on oma syntaksi ja kielioppi tietojen noutamiseen, tallentamiseen ja päivittämiseen tietokannasta. Se vähentää JAVA: n ja RDBMS: n impedanssien epäsovitusta.

Miksi tarvitsemme HQL: tä?

Koska JAVA: n merkitys Internetin kaltaisten alustojen kielenä kasvaa, pidämme tarpeellisempana yhdistää JAVA-pohjainen sovellus takaosaan horrostilan avulla. Hibernate käyttää HQL-kieltä sen sijaan, että luodaan yhteys tietokannan ja käyttöliittymän välille.

Tarvitsemme HQL: tä, kun haluamme valita tietyt kentät ja sarakkeet vaatimuksemme mukaan. Aikaisemmin hyväksytyt menetelmät eivät olleet riittävän tehokkaita poraamaan tälle tasolle esimerkiksi hakemalla tulosjoukko tai tietojoukko tietokannasta kokonaisena tietueena, jolla on rivien ja sarakkeiden lukumäärä. Tämä lähestymistapa ei anna joustavuutta kaventaa hakua ja tekee sovelluksesta raskas ja hidas. Tätä lähestymistapaa käyttävät JDBC-liittimet, asp.net ja monet muut kielet. HQL: n käyttö vähentää tätä aikaeroa ja tarjoaa tarkat tulokset. Siksi on tarkoituksenmukaisempaa käyttää reaaliaikaisessa ympäristössä, jossa JAVA on mukana käyttöliittymässä.

Kuinka HQL toimii?

HQL on XML-tiedostomuoto, jolla java linkitetään käyttöliittymästä takaosan tietokantaan. SQL-kyselyt, jotka käynnistämme tietokannasta suoraan sql-kyselyillä, voidaan kirjoittaa myös hql-tiedoissa. HQL: llä on oma syntaksi, johon voimme kirjoittaa kyselyn ja sitten kysely muunnetaan SQL-lauseiksi, jotka tietokanta ymmärtää. Tämä on kirjoitettu java-kielellä impedanssien epäsovituksen vähentämiseksi.

HQL on iso ja iso kirjainkoko, lukuun ottamatta luokkien ja kokonaisuuksien nimiä. Esimerkiksi: org.hibernate.eg.test ei ole sama kuin org.hibernate.eg.Test, koska “test” ja “Test” ovat kaksi erilaista yksikköä HQL: ssä.

Huomaa: Voimme käyttää SQL: tä HQL-kyselyissä suoraan käyttämällä alkuperäistä koodia.

HQL: n edut

HQL: n kielellä on useita etuja:

  1. Kooderilla ei ole velvollisuutta oppia SQL-kieltä.
  2. HQL on oliokeskeinen ja sen suorituskyky on hyvä, kun linkitämme käyttöliittymäsovelluksemme taustaohjelmaan.
  3. HQL: llä on välimuisti ja parantaa siten nopeutta.
  4. HQL tukee OOP-käsitteiden suosittuja piirteitä, kuten polymorfismi, perintö ja assosiaatio.

Syntaksi sekä HQL-kyselyesimerkit

Jotkut yksinkertaiset kyselyt lepotilasta näyttävät seuraavalta:

FROM-lausekkeesta:

From eg.Test or From Test.

Tämä lausunto palauttaa kaikki luokan esiintymät. Tässä tapauksessa se on testi. Voimme luoda myös aliaksen esimerkiksi: Testistä testiksi. Tässä "testi" on testin aliava. Tätä aliaalia voidaan sitten käyttää myöhemmin luokan sijasta.

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

Tätä lausumaa käytetään, kun haluamme luoda aliaksia HQL: n pääluokkiin. Tämä on hyödyllinen tekniikka, jos meillä on pitkät kyselyt. Voimme vain määrittää kyselyn aliakselle ja käyttää sitä sitten jatkokäsittelyyn. Alias ​​voidaan tehdä myös ilman AS-avainsanaa. Esim .: Testistä T.

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

Tätä lauseketta käytetään, kun etsimme tiettyä tietokantaa taulukosta. Joten jos etsimme tiettyä tietuetta olemassa olevan testikoodin perusteella, tätä lauseketta käytetään kyselyssä. Tämä auttaa kaventamaan hakukriteeriä. Jos annamme ensisijaisen avaimen f taulukkoon missä lauseessa, meidän pitäisi nähdä huomattava parannus hakunopeudessa.

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

Tätä lauseketta käytetään, jos haluamme valita tietyn sarakkeen tietokantataulukosta. Tämä on yksi tapa kaventaa hakukriteeriä. Mikä tahansa kentän nimi annamme valintalausekkeessa, vain se valitaan. On hyödyllistä hakea pieni määrä tietoa, jos meillä on siitä erityisiä tietoja.

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

Tätä kyselyä koskevaa lauseketta voidaan käyttää yhden tai useamman objektin poistamiseen kytketystä tietokantataulusta. Sekä ”ohimenevä” että ”pysyvä” objekti voidaan poistaa b tällä tavalla. Tämä on yksinkertainen kysely minkä tahansa määrän kenttien tai taulukoiden poistamiseksi kokonaan tietokannasta. Tätä tulisi käyttää huolellisesti.

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

johtopäätös

Siksi HQL on tyylikäs oliokeskeinen kieli, joka siltaa aukon oliokeskeisen JAVA: n ja tietokannan hallintajärjestelmän välillä. Suurimmalla markkinaosuudella horroskyselykielestä on tulossa suosittu kieli, jonka kanssa työskennellä.

Suositellut artikkelit

Tämä on opas HQL: hen. Tässä keskustellaan siitä, miksi tarvitsemme HQL-sovellusta etujen, työskentelyn ja syntaksin kanssa kyselyesimerkkien kanssa. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Hibernate-kehys
  2. Hibernaattiistunto
  3. Hibernate-haastattelukysymykset
  4. Mikä on Java Hibernate?