分组查询:

使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计

1.1 聚合函数:常被用来实现数据统计功能

① count() 统计记录条数

② sum() 求和

③ min() 求最小值

④ max() 求最大值

⑤ avg() 求平均值

使用分组查询  查询员工编号的平均值

Session session;
Transaction tx; @Before
public void initDate(){
session = HibernateUtil.getSession();
tx= session.beginTransaction();
} @After
public void afterTest(){
tx.commit();
HibernateUtil.closeSession();
}
@Test
public void avgEmpno(){ Emp emp=new Emp();
Object obj= session.createQuery("select avg(empNo)from Emp").uniqueResult();
System.out.println(obj); }

运行结果

经验:当select语句只是选择查询持久化类的部分属性时,Hibernate返回的查询结果为关系数据,而不是持久化对象,不会占用Session缓存。只要应用程序没有变量引用这些数据,它们占用的内存就会被Java虚拟机(JVM)的垃圾回收器回收。为了方便访问,可以定义一个JavaBean来包装查询结果中的关系数据,使应用程序依旧可以按照面向对象的方式来访问查询结果。

子查询:

检索薪资小于5000的员工的部门名称

 @Test
public void testChild(){ List<Dept> list = session.createQuery("from Dept d where 5000>all(select e.empNo from d.emps e)").list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
} }

原生sql

在部门的小配置 Dept.hbm.xml中插入<sql-query>节点

 <sql-query name="getDeptByName">

     select * from Y2162Dept where deptname=:deptname

     </sql-query>
     

测试类中添加如下代码

@Test
public void getDeptInfo(){ Query query =session.getNamedQuery("getDeptByName"); query.setParameter("deptname", "开发部");
List<Object[]>list=query.list();
for (Object[] dept : list) {
System.out.println(dept[1].getClass());
} }

Hibernate 分组查询 子查询 原生SQL的更多相关文章

  1. oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by

    select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的 ...

  2. 【数据库】SQL经典面试题 - 数据库查询 - 子查询应用二

    上节课我们通过子查询,完成了查询的最高分学生的需求,今天我们来学习子查询的分类,以及通过子查询来完成工作中经常遇到一些个性化需求. 子查询概念: 一个SELECT语句嵌套在另一个SELECT语句中,子 ...

  3. 【知识库】-数据库_MySQL之基本数据查询:子查询、分组查询、模糊查询

    简书作者:seay 文章出处: 关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询 回顾:[知识库]-数据库_MySQL常用SQL语句语法大全示例 Learn [已经过测试校验] 一.简单查询 ...

  4. springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetomany

    springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetoma ...

  5. ylb: SQL表的高级查询-子查询

    ylbtech-SQL Server: SQL Server- SQL表的高级查询-子查询 SQL Server 表的高级查询-子查询. 1,ylb:表的高级查询-子查询返回顶部 --======== ...

  6. Python-select 关键字 多表查询 子查询

    sql 最核心的查询语句!!!! 增删改 单表查询 select语句的完整写法 关键字的书写顺序 执行顺序 多表查询 笛卡尔积 内连接 左外连接 右外连接 全外连接 通过合并左外连接和右外连接 子查询 ...

  7. MYSQL 查询方法 统计查询 链接查询 子查询

    mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据select Code,Name from Info --查指定列的数据select Code as ...

  8. MySQL的查询,子查询,联结查询,联合查询

    MySQL的查询,子查询,联结查询,联合查询 一.mysql查询的五种子句where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 二 ...

  9. Oracle的查询-子查询

    --子查询 --子查询返回一个值 --查询出工资和scott一样的员工信息 select * from emp where sal in (select sal from emp where enam ...

  10. coding++:mybatis 嵌套查询子查询column传多个参数描述

    mybatis 嵌套查询子查询column传多个参数如下: 2.代码示例 备注:注意,相同颜色的单词都是有关联的 <resultMap id="blogResult" typ ...

随机推荐

  1. C#-Socket监听消息处理

    TCP/IP:Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议,又名网络通讯协议.简单来说:TCP控制传输数据,负责发现传输 ...

  2. centos svn服务器搭建

    1.安装svnyum install subversion查看安装目录rpm -ql subversion 查看yum安装subversion的位置 2.创建仓库创建版本库目录mkdir -p /va ...

  3. Ant_build.xml的最完整解释

    Ant的概念Make命令是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨平台 ...

  4. 使用javascript改变图片路径

    效果预览:http://keleyi.com/keleyi/phtml/jstexiao/16.htm 代码如下: <!DOCTYPE html> <html> <hea ...

  5. js 循环li添加点击事件 (闭包的应用)

    var aLi = document.querySelectorAll('.article-tab li');  for (var i = 0; i <= aLi.length; i++) {  ...

  6. [JS]笔记14之事件委托

    -->什么是事件委托-->事件委托原理-->事件委托优点-->事件源 / 目标源 一.什么是事件委托 通俗的讲,onclick,onmouseover,onmouseout等这 ...

  7. arcgis for flex展示GIS基本功能

    1.地图框选搜索: 这是空间查询,在地图上框选一定的范围,然后搜索出在这个范围之内的所有信息,搜索到的详细信息在列表框显示出来 2.属性查询: 3.数据库展示: 4.绘制图形: 地图上绘制各种不同形状 ...

  8. Object-C关于GCD多线程的使用

    ```objc1 使用Crearte函数创建的并发队列和全局并发队列的主要区别: 1)全局并发队列在整个应用程序中本身是默认存在的并且对应有高优先级.默认优先级.低优先级和后台优先级一共四个并发队列, ...

  9. 正则表达式的JS验证

    /判断输入内容是否为空    function IsNull(){        var str = document.getElementById('str').value.trim();      ...

  10. margin css的外边距

    h2{margin:10px 0;} div{margin:20px 0;} ...... <h2>这是一个标题</h2> <div> <h2>这是又一 ...