Hibernate聚合函数的使用

一 实战
import com.cakin.util.HibernateUtil;
import com.sina.domain.Studcourse;
import com.sina.domain.Student;
public class TestMain {
        public static void main(String[] args) {
                //这我们举例说明hql使用
                Session session=null;
                Transaction tx=null;
                try {
                        session=HibernateUtil.getCurrentSession();
                        tx=session.beginTransaction();
                        //     1.查询计算机系共多少人?->如果我们返回的是一列数据
                        //这时我们的取法是直接取出list->object 而不是 list->Object[]
                        List list=session.
                        createQuery("select sage from  Student where sdept='计算机系'").list();
                        //取出1. for 增强
                        for(Object obj:list){
                                System.out.println(obj.toString());
                        }
                        System.out.println("***************************************");
                        //     2.查询总学分是多少?
                        List list1=session.
                         createQuery("select sum(grade) from Studcourse").list();
                        //取出1. for 增强
                        for(Object obj:list1){
                                System.out.println(obj.toString());
                        }
                        System.out.println("***************************************");
                        //     3.查询选修11号课程的最高分和最低分.
                        List list2=session.
                        createQuery("select 11,max(grade),min(grade) from Studcourse where course.cid=11").list();
                        //取出1. for 增强
                        for(Object[] obj:list2){
                                System.out.println(obj[0].toString()+" max="+obj[1].toString()+" min="+obj[2].toString());
                        }
                        System.out.println("***************************************");
                        //4.显示各科考试不及格学生的名字(Student-student),科目(Course-course)和分数(Studcourse-studcourse)
                        List list3=session.
                        createQuery("select student.sname,course.cname,grade from Studcourse where grade>=60").list();
                        //取出1. for 增强
                        for(Object[] obj:list3){
                                System.out.println(obj[0].toString()+" "+obj[1].toString()+" "+obj[2].toString());
                        }
                        System.out.println("***************************************");
                        //5.计算各个科目不及格的学生数量.
                        List list4=session.
                        createQuery("select count(*),student.sdept from Studcourse where grade<60 group by student.sdept").list();
                        //取出1. for 增强
                        for(Object[] obj:list4){
                                System.out.println(obj[0].toString()+" "+obj[1].toString());
                        }
                        tx.commit();
                } catch (Exception e) {
                        e.printStackTrace();
                        if(tx!=null){
                                tx.rollback();
                        }
                        throw new RuntimeException(e.getMessage());
                        // TODO: handle exception
                }finally{
                        if(session!=null&&session.isOpen()){
                                session.close();
                        }   
                }
        }
}

二 测试结果
22
22
***************************************
382
***************************************
11 max=90 min=39
***************************************
林青霞 java编程 90
林青霞 java编程 90
林可欣 javaEE 99
***************************************
1 化学系
1 数学系
1 计算机系

你可能感兴趣的:(Hibernate)