¿Qué es el HQL?

HQL es una abreviatura para el lenguaje de consulta de hibernación. Hibernate es una plataforma para conectar las bases de datos tradicionales al lenguaje orientado a objetos (específicamente JAVA). Es un lenguaje de consulta en hibernación, es similar al SQL en RDBMS tradicional, excepto por el hecho de que usamos una entidad en HQL en lugar de tablas. Está escrito incrustado en código JAVA y se utilizan varias funciones de la biblioteca JAVA para convertir HQL a SQL. Se puede llamar como un lenguaje orientado a objetos en relieve con sentencias de consulta SQL. Es un lenguaje flexible y fácil de usar que tiene su propia sintaxis y gramática para recuperar, almacenar y actualizar información de la base de datos. Reduce la falta de coincidencia de impedancia entre JAVA y RDBMS.

¿Por qué necesitamos HQL?

A medida que aumenta la importancia de JAVA como lenguaje para plataformas como Internet, nos resulta más relevante conectar nuestra aplicación basada en JAVA al back-end con la ayuda de hibernate. Hibernate usa lenguaje HQL en su lugar para establecer la conexión entre la base de datos y el front-end.

Necesitamos HQL cuando queremos seleccionar algunos campos y columnas particulares según nuestros requisitos. Los métodos adoptados anteriormente no fueron lo suficientemente eficientes para profundizar a este nivel, por ejemplo, obtener el conjunto de resultados o el conjunto de datos de la base de datos como un registro completo que tiene el número de filas y columnas. Este enfoque no brinda la flexibilidad para limitar la búsqueda y hace que la aplicación sea pesada y lenta. JDBC Connectors, asp.net y muchos otros idiomas utilizan este enfoque. El uso de HQL reduce este intervalo de tiempo y proporciona resultados específicos. Por lo tanto, es más relevante ser utilizado en un entorno en tiempo real donde JAVA está involucrado en el front-end.

¿Cómo funciona HQL?

HQL es un formato de archivo XML para vincular Java desde el front-end a la base de datos en el back-end. Las consultas SQL que activamos en la base de datos directamente usando consultas SQL también se pueden escribir en hql. El HQL tiene su propia sintaxis donde podemos escribir la consulta y luego esa consulta se convierte en declaraciones SQL que pueden ser entendidas por la base de datos. Esto está escrito en lenguaje java para reducir la falta de coincidencia de impedancia.

HQL es un lenguaje que no distingue entre mayúsculas y minúsculas, excepto el nombre de clases y entidades. Por ejemplo: org.hibernate.eg.test no es igual a org.hibernate.eg.Test ya que "test" y "Test" son dos entidades diferentes en HQL.

Nota: Podemos usar SQL en consultas HQL directamente usando el código nativo.

Ventajas de HQL

Hay varias ventajas de HQL como lenguaje:

  1. El codificador no tiene ninguna obligación de aprender el lenguaje SQL.
  2. HQL está orientado a objetos y su rendimiento es bueno cuando vinculamos nuestra aplicación front-end al backend.
  3. HQL tiene memoria caché y, por lo tanto, mejora la velocidad.
  4. HQL admite características populares de conceptos de OOP como polimorfismo, herencia y asociación.

Sintaxis junto con ejemplos de consulta HQL

Algunas consultas simples en hibernación se ven así:

DE cláusula:

From eg.Test or From Test.

Esta declaración devolverá todas las instancias de la clase. En este caso, es Test. También podemos crear un alias para, por ejemplo: From Test como prueba. Aquí "prueba" es el alias de Prueba. Este alias se puede usar más tarde en lugar de la clase.

Ejemplo 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 declaración se usa cuando queremos crear alias para las clases principales de HQL. Esta es una técnica útil en caso de que tengamos consultas largas. Simplemente podemos asignar la consulta al alias y luego usar ese alias para el manejo adicional de datos. El alias puede hacerse sin la palabra clave AS también. Por ejemplo: de la prueba T.

Ejemplo # 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 se usa cuando buscamos datos particulares en la tabla de la base de datos. Entonces, si estamos buscando un registro en particular sobre la base del código de prueba que tenemos, esta cláusula se usa en la consulta. Esto ayudará a reducir el criterio de búsqueda. Si le damos a la clave primaria f la tabla en la cláusula where, entonces deberíamos ver una mejora significativa en la velocidad de búsqueda.

Ejemplo # 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 se usa si queremos seleccionar una columna particular de la tabla de la base de datos. Esta es una de las formas de reducir el criterio de búsqueda. Cualquier nombre de campo que le demos en la cláusula select solo se seleccionará. Es útil obtener una pequeña cantidad de datos si tenemos información específica sobre el mismo.

Ejemplo # 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 en la consulta se puede usar para eliminar uno o más objetos de la tabla de base de datos conectada. Ambos objetos "transitorios" y "persistentes" se pueden eliminar de esta manera. Esta es la consulta simple para eliminar cualquier número de campos o tablas de la base de datos. Esto debe usarse con cuidado.

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

Conclusión

Por lo tanto, HQL es un elegante lenguaje orientado a objetos que cierra la brecha entre JAVA orientado a objetos y el sistema de gestión de bases de datos. Con la mayor cuota de mercado, el lenguaje de consulta de hibernación se está convirtiendo en un lenguaje popular para trabajar.

Artículos recomendados

Esta es una guía de HQL. Aquí discutimos por qué necesitamos HQL con las ventajas, el trabajo y la sintaxis junto con los ejemplos de consulta. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Marco de hibernación
  2. Sesión de hibernación
  3. Preguntas de la entrevista de hibernación
  4. ¿Qué es la hibernación de Java?