一 实战
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<Object[]> 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<Object[]> 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<Object[]> 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<Object[]> 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<Object[]> 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 计算机系

7266

被折叠的 条评论
为什么被折叠?



