Hibernate: lenguaje de consulta

Hibernate es un marco Java que facilita la creación de aplicaciones Java interactivas con bases de datos. En HQL, en lugar de un nombre de tabla, usa un nombre de clase. Como resultado, es un lenguaje de consulta independiente de la base de datos. Hibernate convierte las consultas HQL en consultas SQL, que luego se utilizan para realizar acciones en la base de datos. Aunque Native SQL se puede usar directamente con Hibernate, se recomienda utilizar HQL siempre que sea posible para evitar problemas de portabilidad de la base de datos.

HQL tiene muchos beneficios. Algunos beneficios son: son independientes de la base de datos, admiten consultas polimórficas y son fáciles de aprender para los programadores de Java.

La interfaz Query proporciona métodos y capacidades orientados a objetos para representar y manipular consultas HQL.

Ejemplo: cláusula HQL FROM

Para cargar un objeto persistente completo en la memoria, se usa la cláusula FROM.

String hib = "FROM Student";
Query query = session.createQuery(hib);
List results = query.list();

Ejemplo: Cláusula HQL SELECT

La cláusula SELECT se usa cuando solo se requieren algunos atributos de un objeto en lugar de todo el objeto.

String hib = "SELECT S.roll FROM Student S";
Query query = session.createQuery(hib);
List results = query.list();

Ejemplo: Cláusula HQL WHERE

El filtrado de registros se realiza con la cláusula WHERE. Se utiliza para recuperar solo los registros que cumplen un conjunto de criterios.

String hib = "FROM Student S WHERE S.id = 5";
Query query = session.createQuery(hib);
List results = query.list();

Ejemplo: Cláusula HQL ORDER BY

La cláusula ORDER BY se utiliza para ordenar los resultados de una consulta HQL.

String hib = "FROM Student S WHERE S.id > 5 ORDER BY S.id DESC";
Query query = session.createQuery(hib);
List results = query.list();

Cláusula ACTUALIZACIÓN HQL

La cláusula UPDATE es necesaria para actualizar el valor de un atributo.

String hib = "UPDATE Student set name=:n WHERE roll=:i";
Query q=session.createQuery(hib);  
q.setParameter("n","John");  
q.setParameter("i",23);  
int status=q.executeUpdate();  
System.out.println(status); 

Cláusula HQL DELETE

Se requiere eliminar un valor de un atributo.

String hib = "DELETE FROM Student where id=10";
Query query=session.createQuery(hib);  
query.executeUpdate();

Cláusula HQL INSERT

Se requiere Insertar valores en la relación.

String hib = "insert into Student(first_name, last_name)" +
                "select first_name, last_name from backup_student";
Query query = session.createQuery(hib);
int result = query.executeUpdate();

Paginación usando Query

Método Acción realizada
Consulta setMaxResults(int max) Indica a Hibernate que obtenga una cantidad específica de elementos
Consulta setFirstResult(int inicio_no) Toma un número entero como argumento que representa la primera fila en su conjunto de resultados, comenzando con la fila 0.

Ejemplo

String hib = "from Student"
Query query=session.createQuery(hib);  
query.setFirstResult(5);  
query.setMaxResult(10);  
List list=query.list();

El ejemplo anterior devuelve el registro de 5 a 10.

Métodos agregados

Similar a SQL, HQL tiene varias técnicas de agregación.

Ejemplo 1: promedio

String hib = "select avg(marks) from Student";
Query q=session.createQuery(hib); 

Ejemplo 2: máx .

String hib = "select max(marks) from Student";
Query q=session.createQuery(hib); 

Ejemplo 3:  min

String hib = "select min(marks) from Student";
Query q=session.createQuery(hib); 

Ejemplo 4: contar

String hib = "select count(id) from Student";
Query q=session.createQuery(hib);

Ejemplo de suma

String hib = "select sum(marks) from Student";
Query q=session.createQuery(hib);  
List<Integer> list=q.list();  
System.out.println(list.get(0)); 

Publicación traducida automáticamente

Artículo escrito por rkravisingh890 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *