【例】雇员信息
比较运算:查询姓名为“李树生”的雇员信息
session=HibernateSessionFactory.getSession();
String hql="from Employee e where e.emp_name=?";
Query query=session.createQuery(hql);
query.setParameter(0, "李树生");
List<Employee>list=query.list();
for(Employee emp:list){
System.out.println(emp.getEmp_id()+" "+emp.getEmp_name()+" "+emp.getEmp_sex()+
" "+emp.getEmp_birth()+" "+emp.getEmp_job()+" "+emp.getEmp_salary());
}
运行结果:
范围运算:查询薪水在6000到8000之间雇员信息
session=HibernateSessionFactory.getSession();
String hql="from Employee e where e.emp_salary between ? and ?";
Query query=session.createQuery(hql);
query.setDouble(0, 6000);
query.setDouble(1, 8000);
List<Employee>list=query.list();
for(Employee emp:list){
System.out.println(emp.getEmp_id()+" "+emp.getEmp_name()+" "+emp.getEmp_sex()+
" "+emp.getEmp_birth()+" "+emp.getEmp_job()+" "+emp.getEmp_salary());
}
运行结果:
模糊查询:查询所有姓李的雇员信息
session=HibernateSessionFactory.getSession();
String hql="from Employee e where e.emp_name like ?";
Query query=session.createQuery(hql);
query.setString(0, "%李%");
List<Employee>list=query.list();
for(Employee emp:list){
System.out.println(emp.getEmp_name());
}
运行结果:
分组查询:根据职位进行分组
session=HibernateSessionFactory.getSession();
String hql="from Employee e group by e.emp_job";
Query query=session.createQuery(hql);
List<Employee>list=query.list();
for(Employee emp:list){
System.out.println(emp.getEmp_id()+" " +emp.getEmp_name()+" "+emp.getEmp_sex()
+" "+emp.getEmp_job());
}
运行结果:
子查询:查询所有职位为销售员的雇员信息
session=HibernateSessionFactory.getSession();
String hql="from Employee e where e.emp_job in(select e.emp_job from Employee e where e.emp_job='销售员' )";
Query query=session.createQuery(hql);
List<Employee>list=query.list();
for(Employee emp:list){
System.out.println(emp.getEmp_id()+" " +emp.getEmp_name()+" "+emp.getEmp_sex()
+" "+emp.getEmp_job());
}
运行结果: