您的位置:首页
hibernate-criteria查询
2016-11-06 19:59
281 查看
Criteria查询是Hibernate提供的一种查询方式
下面就一个员工和部门来列一个总体的例子
下面就一个员工和部门来列一个总体的例子
package Test; import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; import org.junit.Test; import com.sun.org.apache.regexp.internal.recompile; import entity.Dept; import entity.Emp; import util.HibernateSessionFactory; public class TestCriteria { /* 通过criteria查询部门信息 */ @Test public void test1(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Dept.class); List<Dept> list=criteria.list(); System.out.println("通过criteria查询部门信息"); for (Dept dept : list) { System.out.println(dept.getDname()); } } /** * 查询位置在二楼的部门 */ @Test public void test2(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Dept.class); //.add(Restrictions.eq("loc", "二楼")); Criterion criterion = Restrictions.eq("loc", "二楼"); criteria.add(criterion); List<Dept> list=criteria.list(); System.out.println("查询位置在二楼的部门"); for (Dept dept : list) { System.out.println(dept.getDname()+"\t"+dept.getLoc()); } } /** * 查询工资高于2000元的员工 */ @Test public void test3(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Emp.class) .add(Restrictions.gt("sal", 2000D)); List<Emp> list=criteria.list(); System.out.println("查询工资高于2000元的员工"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getSal()); } } /** * 查询不属于任何部门的员工 */ @Test public void test4(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Emp.class) .add(Restrictions.isNull("dept")); List<Emp> list=criteria.list(); System.out.println("查询不属于任何部门的员工"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getSal()); } } /** * 查询职位是“MANAGER”的员工 */ @Test public void test5(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Emp.class) .add(Restrictions.eq("job", "MANAGER")); List<Emp> list=criteria.list(); System.out.println("查询职位是“MANAGER”的员工"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getJob()); } } /** * 查询职位是“MANAGER”或“CLERK”的员工 */ @Test public void test6(){ Session session =HibernateSessionFactory.getSession(); List<String> joblist=new ArrayList<String>(); joblist.add("MANAGER"); joblist.add("CLERK"); Criteria criteria = session.createCriteria(Emp.class) .add(Restrictions.in("job", joblist)); List<Emp> list=criteria.list(); System.out.println("查询职位是“MANAGER”或“CLERK”的员工"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getJob()); } } /** * 查询工资在2000到5000元之间的员工 */ @Test public void test7(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Emp.class) //.add(Restrictions.ge("sal", 2000D)) //.add(Restrictions.le("sal", 5000D)); .add(Restrictions.between("sal", 2000D, 5000D)); List<Emp> list=criteria.list(); System.out.println("查询工资在2000到5000元之间的员工"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getSal()); } } /** * 查询姓名中包括 “s”的员工 */ @Test public void test8(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Emp.class) //.add(Restrictions.like("ename", "%s%").ignoreCase());//忽略大小写 .add(Restrictions.like("ename", "s", MatchMode.ANYWHERE).ignoreCase()); List<Emp> list=criteria.list(); System.out.println("查询姓名中包括 “s”的员工"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getSal()); } } /** * 查询职位是“analyser”或“accountant”的员工 */ @Test public void test9(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Emp.class) //两个or //.add(Restrictions.or(Restrictions.eq("job", "CLERK"), //Restrictions.eq("job", "SALESMAN"))); //三个 .add(Restrictions.disjunction() .add(Restrictions.eq("job", "SALESMAN")) .add(Restrictions.eq("job", "CLERK")) .add(Restrictions.eq("job","MANAGER")) ); List<Emp> list=criteria.list(); System.out.println("查询职位是“analyser”或“accountant”的员工--几种方法"); for (Emp emp : list) { System.out.println(emp.getEname()+"\t"+emp.getSal()+"\t"+emp.getJob()); } } /** * 查询没有员工的部门 */ @Test public void test10(){ Session session =HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(Dept.class) .add(Restrictions.isEmpty("emps")); List<Dept> list=criteria.list(); System.out.println(" 查询没有员工的部门"); for (Dept dept : list) { System.out.println(dept.getDname()); } } }
相关文章推荐
- hibernate进阶查询--criteria查询
- hibernate criteria 和restriction 查询
- Hibernate的学习之路十八(Criteria的查询简单)
- Hibernate之Criteria离线查询
- Hibernate之Criteria 基本查询
- [转]Hibernate条件查询(Criteria Query)
- Hibernate createCriteria查询详解
- Hibernate条件查询(Criteria Query)
- Hibernate 、Hql查询和Criteria查询
- Hibernate Criteria 查询 出现重复实体
- Hibernate createCriteria查询详解
- Hibernate 中的 Criteria 查询。
- hibernate criteria where exists查询
- DetachedCriteria离线查询 org.hibernate.criterion.DetachedCriteria; org.hibernate.criterion.Restrictions;
- Hibernate---Criteria 查询
- Hibernate的学习之路十八(Criteria的查询简单)
- Hibernate中createCriteria即QBC查询的详细用法
- 加强hibernate的criteria查询中的使用Example查询的
- Hibernate和Spring整合中数据查询hql与Criteria Query
- Hibernate无语句查询Criteria(用于单表条件查询)