`
wlh269
  • 浏览: 453330 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HQL (十) 统计查询

阅读更多
统计查询(重要)
参见: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);
		}
	}	
}

分享到:
评论

相关推荐

    HQL查询pdf资料

    通过结合使用`GROUP BY`和`HAVING`,还可以实现更复杂的统计查询,如计算年龄大于等于20岁的用户总数。 综上所述,HQL不仅提供了强大的数据查询能力,而且其面向对象的特性使得数据访问更加直观和高效。对于Java...

    hibernate hql各类查询范例

    以上内容涉及了使用 HQL 和 DetachedCriteria 进行查询、参数化查询、执行更新操作以及简单的统计查询等常见的 Hibernate 操作。这些知识点对于理解和掌握 Hibernate 框架的基本使用至关重要,同时也是开发基于 ...

    HQL连接查询和注解使用总结

    ### HQL连接查询和注解使用总结 #### HQL连接查询概述 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种更自然的方式查询对象,而不是直接查询底层数据库表。HQL支持多种连接查询...

    SSH笔记-HQL查询、QBC、本地SQL查询

    SSH笔记-HQL查询(基于位置参数查询、基于命名参数查询、分页查询、命名查询、投影查询报表查询、内/迫切内/左外/迫切左外连接查询)、QBC(QBC检索查询、统计查询、排序查询、HQL操作数据库)、本地SQL查询

    全面解析HQL语句 非常详细直接的HQL语句的功能介绍

    本篇文章将深入探讨HQL(Hibernate Query Language)的核心功能及其在数据查询方面的强大能力。HQL是一种面向对象的查询语言,用于在Hibernate框架中执行数据检索任务。它允许开发人员以一种接近Java语言的方式进行...

    hql精点查询语句.doc

    标题和描述均提到了“HQL精点查询语句”,这明确指向了HQL(Hibernate Query Language)在数据库查询中的应用。HQL是Hibernate框架提供的一种面向对象的查询语言,它允许开发人员以面向对象的方式编写数据库查询,而...

    Hibernate之HQL查询

    HQL支持常用的聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`,可以用于统计和计算。例如: ```sql SELECT COUNT(s) FROM Student s WHERE s.major = '计算机科学' ``` 这个查询将返回计算机科学专业学生的数量...

    HQL 语法总结 实体查询

    ### HQL语法总结:实体查询详解 #### 一、实体查询概述 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种类似于SQL但更接近于面向对象的方式来编写查询。本文将详细介绍HQL中的实体...

    hibernate3.2 (十)HQL查询

    【hibernate3.2 (十)HQL查询】这篇博文主要探讨了Hibernate框架中的HQL(Hibernate Query Language)查询语言,它是Hibernate提供的一种面向对象的查询语言,用于操作持久化对象,类似于SQL但更加面向对象。...

    HQL语句大全HQL语句大全

    HQL(Hibernate Query Language)是Hibernate框架中的查询语言,它提供了面向对象的方式来进行数据库查询。HQL语法接近于SQL但又有所不同,它允许开发者以面向对象的方式来表达查询逻辑,使得查询更加直观且易于理解...

    hql查询语句

    本文将详细探讨HQL中的查询语句,特别是涉及的统计函数和一些关键子句。 首先,`from`子句用于指定查询的源,如`from Person`表示从`Person`持久化类中选取所有实例。为了提高可读性,通常会使用别名,如`from ...

    Hibernate注解方式、HQL查询

    本篇将详细探讨Hibernate的注解方式以及HQL(Hibernate Query Language)查询。 一、Hibernate注解方式 1. **实体类注解**:在Hibernate中,我们可以使用注解来定义一个Java类为数据库中的表。例如,使用`@Entity`...

    hql语句 使用大全

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. 查询所有记录(Select) ...

    hibernate_hql.rar_HQL

    HQL提供了如count、sum、avg、max、min等聚合函数,用于统计和计算。例如,获取User表中最大的年龄: ```java String hql = "select max(age) from User"; Object maxAge = query.uniqueResult(); ``` 四、HQL分组...

    Hibernate-HQL-查询-Query资料

    - **聚合查询**:使用函数如COUNT、AVG、MAX、MIN、SUM进行统计计算。 - **分组查询**:根据一个或多个属性对结果进行分组。 - **排序查询**:通过ORDER BY子句对结果进行排序。 - **关联查询**:处理一对多、一...

    HQL的具体内容和使用

    HQL支持多种查询方式,包括对象查询、属性查询、参数查询、关联查询、分页查询、统计函数查询以及原生SQL查询。 在HQL中,查询的目标是对象,而不是数据库表,条件通常是对象的属性。例如,`from Student s`会查询...

    Hql语句注意事项总结

    - **统计函数与分组**:在Hql中,`group by`语句用于对数据进行分组,常与聚合函数如`sum()`、`count()`、`max()`等结合使用。例如,你可以选择特定字段进行分组,并计算每个组的总和或计数。 - **约束条件的位置*...

    HQL语法大全,并带有详细的例子

    2. **编写HQL语句**:根据查询需求编写合适的HQL查询语句。 3. **创建查询对象**:将编写的HQL语句传递给Session的`createQuery`方法来创建一个Query实例。 4. **设置参数**:如果HQL语句中含有参数,则需要通过...

    Hibernate HQL查询.docx

    - 例如,统计用户总数的查询可以这样编写: ```java String hql = "SELECT COUNT(*) FROM User"; Number count = (Number) session.createQuery(hql).uniqueResult(); System.out.println("用户总数:" + count...

Global site tag (gtag.js) - Google Analytics