蛊惑之刻1-4百度网盘:Hibernate中的criteria查询

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 01:14:18

如有一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 stus = c.list();
-------------------
常用操作
-------------------
---------------------------------------------------------------
//查询指定列在一个值范围中的数据
  List list = session.createCriteria(Student.class).add(Restrictions.between("sid", 2, 5)).list();
  //查询主键ID等于指定值的数据
  List list2 = session.createCriteria(Student.class).add(Restrictions.idEq(2)).list();
  //模糊查询指定列的数据
  List list3 = session.createCriteria(Student.class).add(Restrictions.ilike("name", "%三%")).list();
  //查询指定列在一个数组/集合范围中的数据
  List list4 = session.createCriteria(Student.class).add(Restrictions.in("sid",new Object[]{1,2,3,4})).list();
  //查询指定属性等于指定值的数据
  List list5 = session.createCriteria(Student.class).add(Restrictions.eq("name", "张三")).list();
  //查询指定属性的值 >指定值 的数据
  List list6 = session.createCriteria(Student.class).add(Restrictions.gt("sid", 3)).list();
  //查询指定属性的值 >=指定值 的数据
  List list7 = session.createCriteria(Student.class).add(Restrictions.ge("sid", 5)).list();
  //查询指定属性的值 >指定值 的数据
  List list8 = session.createCriteria(Student.class).add(Restrictions.lt("sid", 3)).list();
  //查询指定属性的值 >指定值 的数据
  List list9 = session.createCriteria(Student.class).add(Restrictions.le("sid", 3)).list();
  //查询AND条件的数据
  List list10 = session.createCriteria(Student.class).add(Restrictions.and(Restrictions.in("id", new Object[]{1,2,3,4}), Restrictions.eq("name", "张三"))).list();
  //查询OR条件的数据
  List list11 = session.createCriteria(Student.class).add(Restrictions.or(Restrictions.like("name", "%当%"), Restrictions.le("sid", 5))).list();
  //查询NOT条件的数据  
  List list12 = session.createCriteria(Student.class).add(Restrictions.not(Restrictions.between("sid", 1, 4))).list();
  //查询排序后的数据  
  List list13 = session.createCriteria(Student.class).add(Restrictions.not(Restrictions.between("sid", 1, 4))).addOrder(Order.desc("sid")).list();
  //查询分页 排序后的数据  
  List 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());
}