ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hql语法002

2019-06-24 18:51:31  阅读:139  来源: 互联网

标签:salary HibernateUtil obj 语法 002 session hql Test null


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();
        }
    }


}

 

标签:salary,HibernateUtil,obj,语法,002,session,hql,Test,null
来源: https://www.cnblogs.com/syjp/p/11078764.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有