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 ...
随机推荐
- bzoj 4289 TAX —— 点边转化
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4289 把边转化成点,同一个原有点相连的边中,边权小的向大的连差值的边,大的向小的连0的边: ...
- (二十八)分类信息的curd-分类信息删除
删除分类步骤分析: 1.在list.jsp上编写 删除连接 /store/adminCategory?method=delete&cid=?? 2.在delete方法中 获取cid 调用ser ...
- 安装GitLab出现ruby_block[supervise_redis_sleep] action run
在卸载gitlab然后再次安装执行sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一 ...
- E20170510-hm
prototype n. 原型,雏形,蓝本; omit (omitted) vt. 省略; 遗漏; autonomous adj. 自治的; 有自主权的; fold ...
- 【杂谈】5G有啥用?跟咱有关系么?关注那玩意儿干啥?
用处大了 有啥用? 云计算啊,你看看你电脑都卡成啥了? 既然5G速度赶上本地读取,那就相当于把硬盘放云端没问题了.那么,看看自己硬盘里都有啥,5G的用处或许就能一点点浮现出来了. ——请不要急着打开一 ...
- 第十七篇 .NET高级技术之XML
Xml 简介(可扩展标记语言) XML优点:容易读懂:格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写. Xml就是用一种格式化的方式来存储数据,我们可以通过用记事本打开. .n ...
- vim normal 模式下L键
vim normal 模式下L键总是到一行的最后一个字符,而不是最后一个字符的下一个字符,这样进入插入模式,就还得往右移动一下,就很费劲? 怎么解决 更新: a键进入插入即可
- Python转载
让Python的经验更多一点 Python while 1 和 while True 速度比较 Python %s和%r的区别
- python之迷宫BFS
# @File: maze_queue_bfs from collections import deque maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0 ...
- Execution of 'source /usr/hdp/current/oozie-server/conf/oozie--env.sh: oozie admin -oozie http://nssa-sensor3:11000/oozie -status' returned 255.解决办法(图文详解)
不多说,直接上干货! 问题详情 解决办法 Copy/Paste oozie.services property tag set from oozie-default.xml to oozie-site ...