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 ...
随机推荐
- JavaScript-Tool:Uploadify-un
ylbtech-JavaScript-Tool:Uploadify 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. http://www.uploadify ...
- bzoj5073
dp 字符串dp不太会啊... 这种序列和子串的匹配一般设两个状态,dp[i][j]表示当前s匹配到i,t匹配到j的...,g[i][j]表示当前s匹配到i,t匹配到j,i,j必须匹配的...,noi ...
- CSS中style用法详解
转自:http://www.cnblogs.com/xingxingchongchong/p/6501575.html css样式表按其所在位置分三种: 1.内嵌样式表 2.内部样式表 3.外部样式表 ...
- java利用Aspose.words.jar将本地word文档转化成pdf(完美破解版 无水印 无中文乱码)
package doc; import java.io.*; import junit.framework.Test; import com.aspose.words.*; public class ...
- File System Programming --- (一)
About Files and Directories The file system is an important part of any operating system. After all, ...
- LXC安装
#安装lxcsudo apt-get install lxc#创建一个容器,会出现下图选择的界面 lxc-create -t download -n my-container #开启lxc-start ...
- DLL分配的内存如何在EXE里面释放
总结下面几个要点: 1. 保证内存分配和清除的统一性:如果一个DLL提供一个能够分配内存的函数,那么这个DLL同时应该提供一个函数释放这些内存.数据的创建和清除应该在同一个层次上. 曾经遇到过这样的例 ...
- docker系列(一):docker基础与安装笔记
1 什么是docker docker是基于GO语言编写的开源容器项目,诞生于2013年初,到目前为止,已经经历了6年的发展演变.现如今,docker已经非常火爆,特别是在一线IT企业,部署.运维等工作 ...
- Hexo瞎折腾系列(6) - 将博客同时部署到Github和Coding
前言 由于本人只是将Hexo博客同时部署到 Github 和 Coding.net ,所以这里只介绍怎么同时部署到这两个网站的pages. 之所以选择这两个网站,是因为国外用户可以访问 Github, ...
- java final static 和final区别
static 和非static 之间的差异,只有当值在运行期间初始化的前提下,这种差异才会揭示出来.因为编译期间的值被编译器认为是相 同的. package thinking; public clas ...