O que é HQL?

HQL é uma abreviação de linguagem de consulta hibernada. O Hibernate é uma plataforma para conectar os bancos de dados tradicionais à linguagem orientada a objetos (especificamente JAVA). É uma linguagem de consulta no hibernate que é semelhante ao SQL no RDBMS tradicional, exceto pelo fato de usarmos uma entidade no HQL em vez de tabelas. Ele é gravado incorporado no código JAVA e várias funções da biblioteca JAVA são usadas para converter HQL em SQL. Pode ser chamado como uma linguagem orientada a objetos gravada com instruções de consulta SQL. É uma linguagem flexível e fácil de usar, com sintaxe e gramática próprias para recuperar, armazenar e atualizar informações do banco de dados. Reduz a incompatibilidade de impedância entre JAVA e RDBMS.

Por que precisamos do HQL?

À medida que a importância do JAVA como idioma para plataformas como a Internet está aumentando, achamos mais relevante conectar nosso aplicativo baseado em JAVA ao back-end com a ajuda do hibernate. O Hibernate usa a linguagem HQL para estabelecer a conexão entre o banco de dados e o front-end.

Precisamos do HQL quando queremos selecionar alguns campos e colunas específicos, conforme nossos requisitos. Os métodos adotados anteriormente não eram eficientes o suficiente para detalhar esse nível, por exemplo, buscando o conjunto de resultados ou conjunto de dados do banco de dados como um registro inteiro com o número de linhas e colunas. Essa abordagem não oferece flexibilidade para restringir a pesquisa e torna o aplicativo pesado e lento. Essa abordagem é usada pelos conectores JDBC, asp.net e muitos outros idiomas. O uso do HQL reduz esse intervalo de tempo e fornece resultados específicos. Portanto, é mais relevante ser usado em um ambiente de tempo real onde o JAVA está envolvido no front end.

Como o HQL funciona?

HQL é um formato de arquivo XML para vincular java do front-end ao banco de dados no back-end. As consultas SQL que disparamos diretamente no banco de dados usando consultas sql também podem ser escritas em hql. O HQL tem sua própria sintaxe, onde podemos escrever a consulta e, em seguida, essa consulta é convertida em instruções SQL que podem ser entendidas pelo banco de dados. Isso é escrito em linguagem java para reduzir a incompatibilidade de impedância.

HQL é uma linguagem que não diferencia maiúsculas de minúsculas, exceto pelo nome de classes e entidades. Por exemplo: org.hibernate.eg.test não é igual a org.hibernate.eg.Test, pois o "teste" e o "Teste" são duas entidades diferentes no HQL.

Nota: Podemos usar SQL em consultas HQL diretamente usando o código nativo.

Vantagens do HQL

Existem várias vantagens do HQL como uma linguagem:

  1. O codificador não tem nenhuma obrigação de aprender a linguagem SQL.
  2. O HQL é orientado a objetos e seu desempenho é bom quando vinculamos nosso aplicativo front-end ao back-end.
  3. O HQL possui memória cache e, portanto, melhora a velocidade.
  4. O HQL suporta recursos populares de conceitos de OOPs, como polimorfismo, herança e associação.

Sintaxe junto com exemplos de consulta HQL

Algumas consultas simples no hibernate se parecem com:

Cláusula FROM:

From eg.Test or From Test.

Esta declaração retornará todas as instâncias da classe. Nesse caso, é teste. Também podemos criar um alias para, por exemplo: From Test como um teste. Aqui "teste" é o apelido de Teste. Esse alias pode ser usado posteriormente, em vez de classe.

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

Esta declaração é usada quando queremos criar aliases para as principais classes do HQL. Essa é uma técnica útil no caso de termos consultas longas. Podemos simplesmente atribuir a consulta ao alias e depois usá-lo para mais manipulação de dados. O alias pode ser feito sem a palavra-chave AS também. Por exemplo: do teste T.

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

Esta cláusula é usada quando estamos pesquisando dados específicos na tabela do banco de dados. Então, aqui, se estamos procurando um registro específico com base no código de teste que temos, essa cláusula é usada na consulta. Isso ajudará a reduzir o critério de pesquisa. Se dermos a chave primária da tabela na cláusula where, veremos a melhoria significativa na velocidade de pesquisa.

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

Esta cláusula é usada se quisermos selecionar uma coluna específica da tabela do banco de dados. Essa é uma das maneiras de restringir o critério de pesquisa. Qualquer que seja o nome do campo que fornecemos na cláusula select, apenas será selecionado. É útil buscar uma pequena quantidade de dados se tivermos informações específicas sobre o mesmo.

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

Esta cláusula na consulta pode ser usada para excluir um ou mais objetos da tabela de banco de dados conectada. Os objetos "transitório" e "persistente" podem ser excluídos dessa maneira. Essa é a consulta simples para excluir qualquer número de campos ou tabelas do banco de dados. Isso deve ser usado com cuidado.

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

Conclusão

Portanto, o HQL é uma linguagem orientada a objetos elegante que preenche a lacuna entre o JAVA orientado a objetos e o sistema de gerenciamento de banco de dados. Com a maior participação de mercado, a linguagem de consulta de hibernação está se tornando uma linguagem popular para se trabalhar.

Artigos recomendados

Este é um guia para o HQL. Aqui discutimos por que precisamos do HQL com vantagens, trabalho e sintaxe junto com exemplos de consulta. Você também pode consultar os seguintes artigos para saber mais -

  1. Estrutura Hibernate
  2. Sessão de hibernação
  3. Perguntas da entrevista do Hibernate
  4. O que é o Java Hibernate?