hql语法002
1、
package cn.jbit.hibernatedemo.test; import java.util.Iterator;
import java.util.List; import org.hibernate.*;
import org.junit.Test; import cn.jbit.hibernatedemo.dao.HibernateUtil;
import cn.jbit.hibernatedemo.entity.DeptSalary; public class Eg { /**
* 统计部门个数。
*/
@Test
public void egDept() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Long count = (Long) session.createQuery(
"select count(*) from Dept d").uniqueResult();
System.out.println(count);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计员工工资。
*/
@Test
public void egEmp() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Double salarySum = (Double) session.createQuery(
"select sum(e.salary) from Emp e").uniqueResult();
System.out.println(salarySum);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计员工最低工资。
*/
@Test
public void egEmpMinSalary() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Double salary = (Double) session.createQuery(
"select min(e.salary) from Emp e").uniqueResult();
System.out.println(salary);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计员工最高工资。
*/
@Test
public void egEmpMaxSalary() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Double salary = (Double) session.createQuery(
"select max(e.salary) from Emp e").uniqueResult();
System.out.println(salary);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计员工平均工资。
*/
@Test
public void egEmpAvgSalary() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Double salary = (Double) session.createQuery(
"select avg(e.salary) from Emp e").uniqueResult();
System.out.println(salary);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计最低工资、最高工资以及平均工资。
*/
@Test
public void egEmpSalary() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Object[] salarys = (Object[]) session.createQuery(
"select min(salary),max(salary),avg(salary) from Emp")
.uniqueResult();
System.out
.println(salarys[0] + "," + salarys[1] + "," + salarys[2]);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计员工职位个数。
*/
@Test
public void egJobEmp() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Object count = session.createQuery(
"select count(distinct job) from Emp ").uniqueResult();
System.out.println(count.getClass().getName());
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 按职位统计员工个数。
*/
@Test
public void eg1() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Object[]> list = session.createQuery(
"select job,count(e) from Emp e group by job").list();
for (Object[] obj : list)
System.out.println(obj[0] + "," + obj[1]);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计各个部门的平均工资
*/
@Test
public void eg2() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Iterator<Object[]> it = session
.createQuery(
"select e.dept.deptName,avg(e.salary) from Emp e group by e.dept.deptName")
.list().iterator();
Object[] obj = null;
while (it.hasNext()) {
obj = it.next();
System.out.println(obj[0] + "," + obj[1]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计各个职位的最低工资和最高工资
*/
@Test
public void eg3() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Iterator<Object[]> it = session
.createQuery(
"select job,min(salary),max(salary) from Emp group by job")
.list().iterator();
Object[] obj = null;
while (it.hasNext()) {
obj = it.next();
System.out.println(obj[0] + "," + obj[1] + "," + obj[2]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计各个部门平均工资高于4000元的部门名称,打印部门名称、部门平均工资
*/
@Test
public void eg4() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Iterator<Object[]> it = session
.createQuery(
"select e.dept.deptName,avg(e.salary) from Emp "
+ "e group by e.dept.deptName having avg(e.salary)>4000")
.list().iterator();
Object[] obj = null;
while (it.hasNext()) {
obj = it.next();
System.out.println(obj[0] + "," + obj[1]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 统计各个部门平均工资高于4000元的部门名称,打印部门名称、部门平均工资,使用JavaBean封装查询结果
*/
@Test
public void eg4JavaBean() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Iterator<DeptSalary> it = session
.createQuery(
"select new cn.jbit.hibernatedemo.entity.DeptSalary(e.dept.deptName,avg(e.salary))"
+ " from Emp e group by e.dept.deptName having avg(e.salary)>4000")
.list().iterator();
DeptSalary deptSalary = null;
while (it.hasNext()) {
deptSalary = it.next();
System.out.println(deptSalary.getDeptName() + ","
+ deptSalary.getAvgSalary());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} }
hql语法002的更多相关文章
- jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本
-----业务场景中经常涉及到联查,jpa的hql语法提供了内连接的查询方式(不支持复杂hql,比如left join ,right join). 上代码了 1.我们要联查房屋和房屋用户中间表,通过 ...
- 查询总结、HQL语法、QBC(QueryByCriteria)深入学习
1.查询总结 在之前的批量查询练习的时候练习基本五种查询方法的使用: 1.OID查询---根据对象ID进行查询 2.对象属性导航查询: obj.getXXX 3.HQL查询:Query对象查询 4.Q ...
- Hibernate 框架 -HQL 语法
HQL ( Hibernate Query Language ) 查询语言是面向对象的查询语言,也是在 Hibernate 中最常见的.其语法和 SQL 语法有一些相似,功能十分强大,几乎支持除特殊 ...
- [转]hql 语法与详细解释
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...
- HQL语法
HQL:Hibernate Query Language HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征. $下面介绍HQL语句的语法 1.from子句 from Person 表明从P ...
- 一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual Hive的数据存储 1.Hiv ...
- hql 语法详解
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...
- hql 语法与详细解释<转>
HQL查询 HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性 ...
- 3 hql语法及自定义函数(含array、map讲解) + hive的java api
本博文的主要内容如下: .hive的详细官方手册 .hive支持的数据类型 .Hive Shell .Hive工程所需依赖的jar包 .hive自定义函数 .分桶4 .附PPT hiv ...
随机推荐
- struct 结构体解析(原)
(一)基本概念 结构体是一个或是多个变量的集合,这些变量可能为不同的类型,为了处理的方便而将这些变量组合在一个名字之下.我们将关键字struct引入了结构声明中.结构声明包含在花括号内的一系列声明组成 ...
- bzoj4516
后缀自动机 留个板子 upd:大概懂了 每次新加入的npRight集合肯定只有最后一个位置,那么求所有长得不一样的子串贡献就是Max-Min+1,因为Right集合只有这一个位置,所以这Max-Min ...
- git只clone仓库中指定子目录
基于sparse clone变通方法 [root@vm_test backup]# mkdir devops[root@vm_test backup]# cd devops/[root@vm_test ...
- C++实现查找链表中环的入口节点
/* * 寻找链表中环的入口节点.cpp * * Created on: 2018年4月10日 * Author: soyo */ #include<iostream> using nam ...
- 洛谷 - P2602 - 数字计数 - 数位dp
https://www.luogu.org/problemnew/show/P2602 第二道数位dp,因为“数位dp都是模板题”(误),所以是从第一道的基础上面改的. 核心思想就是分类讨论,分不同情 ...
- python __builtins__ license类 (41)
41.'license', 许可证,执照 class _Printer(builtins.object) | interactive prompt objects for printing the l ...
- python 模块和包的使用方法
一.模块 1.import导入模块 import module1,mudule2... 2.from...import...导入模块 导入指定内容 from modname import name1[ ...
- bzoj 3667: Rabin-Miller算法【Miller-Rabin】
Miller-Rabin模板 #include<iostream> #include<cstdio> #include<algorithm> using names ...
- (二分图最大匹配)51NOD 2006 飞行员配对
第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员.在众多的飞行员中, ...
- hdu1068 Girls and Boys 匈牙利算法(邻接表)
#include <cstdio> #include <algorithm> #include <cstring> #include <vector> ...