如有一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());
}
联系客服