统计查询(重要)
参见:StatQueryTest.java
package com.wlh.hibernate;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import junit.framework.TestCase;
public class StateQueryTest extends TestCase{
/**
* 统计所有的学生 */
public void testQuery1() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
/*List students=(List) session.createQuery("[b]select count(*) from Student [/b] ");
Long count=(Long) students.get(0);*/
Long count=(Long) session.createQuery("select count(*) from Student ").uniqueResult();
System.out.println("count="+count);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
/**
* 统计各个班级的学生各是多少 */
public void testQuery2() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
List list=session.createQuery("select c.name,count(*) from Student s join s.classes c group by c.id order by c.id ").list();
for(Iterator iter=list.iterator();iter.hasNext();){
Object [] o=(Object[]) iter.next();
System.out.println("o.name="+o[0]+",o.count="+o[1]);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
}
分享到:
相关推荐
通过结合使用`GROUP BY`和`HAVING`,还可以实现更复杂的统计查询,如计算年龄大于等于20岁的用户总数。 综上所述,HQL不仅提供了强大的数据查询能力,而且其面向对象的特性使得数据访问更加直观和高效。对于Java...
以上内容涉及了使用 HQL 和 DetachedCriteria 进行查询、参数化查询、执行更新操作以及简单的统计查询等常见的 Hibernate 操作。这些知识点对于理解和掌握 Hibernate 框架的基本使用至关重要,同时也是开发基于 ...
### HQL连接查询和注解使用总结 #### HQL连接查询概述 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种更自然的方式查询对象,而不是直接查询底层数据库表。HQL支持多种连接查询...
SSH笔记-HQL查询(基于位置参数查询、基于命名参数查询、分页查询、命名查询、投影查询报表查询、内/迫切内/左外/迫切左外连接查询)、QBC(QBC检索查询、统计查询、排序查询、HQL操作数据库)、本地SQL查询
本篇文章将深入探讨HQL(Hibernate Query Language)的核心功能及其在数据查询方面的强大能力。HQL是一种面向对象的查询语言,用于在Hibernate框架中执行数据检索任务。它允许开发人员以一种接近Java语言的方式进行...
标题和描述均提到了“HQL精点查询语句”,这明确指向了HQL(Hibernate Query Language)在数据库查询中的应用。HQL是Hibernate框架提供的一种面向对象的查询语言,它允许开发人员以面向对象的方式编写数据库查询,而...
HQL支持常用的聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`,可以用于统计和计算。例如: ```sql SELECT COUNT(s) FROM Student s WHERE s.major = '计算机科学' ``` 这个查询将返回计算机科学专业学生的数量...
### HQL语法总结:实体查询详解 #### 一、实体查询概述 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种类似于SQL但更接近于面向对象的方式来编写查询。本文将详细介绍HQL中的实体...
【hibernate3.2 (十)HQL查询】这篇博文主要探讨了Hibernate框架中的HQL(Hibernate Query Language)查询语言,它是Hibernate提供的一种面向对象的查询语言,用于操作持久化对象,类似于SQL但更加面向对象。...
本文将详细探讨HQL中的查询语句,特别是涉及的统计函数和一些关键子句。 首先,`from`子句用于指定查询的源,如`from Person`表示从`Person`持久化类中选取所有实例。为了提高可读性,通常会使用别名,如`from ...
本篇将详细探讨Hibernate的注解方式以及HQL(Hibernate Query Language)查询。 一、Hibernate注解方式 1. **实体类注解**:在Hibernate中,我们可以使用注解来定义一个Java类为数据库中的表。例如,使用`@Entity`...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. 查询所有记录(Select) ...
HQL提供了如count、sum、avg、max、min等聚合函数,用于统计和计算。例如,获取User表中最大的年龄: ```java String hql = "select max(age) from User"; Object maxAge = query.uniqueResult(); ``` 四、HQL分组...
- **聚合查询**:使用函数如COUNT、AVG、MAX、MIN、SUM进行统计计算。 - **分组查询**:根据一个或多个属性对结果进行分组。 - **排序查询**:通过ORDER BY子句对结果进行排序。 - **关联查询**:处理一对多、一...
HQL支持多种查询方式,包括对象查询、属性查询、参数查询、关联查询、分页查询、统计函数查询以及原生SQL查询。 在HQL中,查询的目标是对象,而不是数据库表,条件通常是对象的属性。例如,`from Student s`会查询...
- **统计函数与分组**:在Hql中,`group by`语句用于对数据进行分组,常与聚合函数如`sum()`、`count()`、`max()`等结合使用。例如,你可以选择特定字段进行分组,并计算每个组的总和或计数。 - **约束条件的位置*...
2. **编写HQL语句**:根据查询需求编写合适的HQL查询语句。 3. **创建查询对象**:将编写的HQL语句传递给Session的`createQuery`方法来创建一个Query实例。 4. **设置参数**:如果HQL语句中含有参数,则需要通过...
- 例如,统计用户总数的查询可以这样编写: ```java String hql = "SELECT COUNT(*) FROM User"; Number count = (Number) session.createQuery(hql).uniqueResult(); System.out.println("用户总数:" + count...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...