如有一Student类如下: --------------------------------------------------------------- public class Student { private int sid; private String name; public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } } --------------------------------------------------------------- criteria查询(标准查询) 步骤: 1.得到Session对象 Session session = new Configuration().configure().buildSessionFactory().openSession(); 2.创建criteria对象 Criteria criteria = session.createCriteria(Student.class); 3.增加条件 Criteria c = criteria.add(Restrictions.idEq(1)); 4.增加条件(可选) c.add(Restrictions.like("name", "%d%")); 5.得到结果 List<Student> stus = c.list(); ------------------- 常用操作 ------------------- --------------------------------------------------------------- //查询指定列在一个值范围中的数据 List<Student> list = session.createCriteria(Student.class).add(Restrictions.between("sid", 2, 5)).list(); //查询主键ID等于指定值的数据 List<Student> list2 = session.createCriteria(Student.class).add(Restrictions.idEq(2)).list(); //模糊查询指定列的数据 List<Student> list3 = session.createCriteria(Student.class).add(Restrictions.ilike("name", "%三%")).list(); //查询指定列在一个数组/集合范围中的数据 List<Student> list4 = session.createCriteria(Student.class).add(Restrictions.in("sid",new Object[]{1,2,3,4})).list(); //查询指定属性等于指定值的数据 List<Student> list5 = session.createCriteria(Student.class).add(Restrictions.eq("name", "张三")).list(); //查询指定属性的值 >指定值 的数据 List<Student> list6 = session.createCriteria(Student.class).add(Restrictions.gt("sid", 3)).list(); //查询指定属性的值 >=指定值 的数据 List<Student> list7 = session.createCriteria(Student.class).add(Restrictions.ge("sid", 5)).list(); //查询指定属性的值 >指定值 的数据 List<Student> list8 = session.createCriteria(Student.class).add(Restrictions.lt("sid", 3)).list(); //查询指定属性的值 >指定值 的数据 List<Student> list9 = session.createCriteria(Student.class).add(Restrictions.le("sid", 3)).list(); //查询AND条件的数据 List<Student> list10 = session.createCriteria(Student.class).add(Restrictions.and(Restrictions.in("id", new Object[]{1,2,3,4}), Restrictions.eq("name", "张三"))).list(); //查询OR条件的数据 List<Student> list11 = session.createCriteria(Student.class).add(Restrictions.or(Restrictions.like("name", "%当%"), Restrictions.le("sid", 5))).list(); //查询NOT条件的数据 List<Student> list12 = session.createCriteria(Student.class).add(Restrictions.not(Restrictions.between("sid", 1, 4))).list(); //查询排序后的数据 List<Student> list13 = session.createCriteria(Student.class).add(Restrictions.not(Restrictions.between("sid", 1, 4))).addOrder(Order.desc("sid")).list(); //查询分页 排序后的数据 List<Student> list14 = session.createCriteria(Student.class).add(Restrictions.not(Restrictions.between("sid", 1, 4))).setFirstResult(0).setMaxResults(3).addOrder(Order.desc("sid")).list(); //遍历出结果 for (Student s : list14) { System.out.println(s.getSid()+""+s.getName()); }
|