Hibernate中使用Criteria查詢實例
hibernate支持一種java編寫習慣的查詢api,使用session建立net.sf.hibernate.Criteria,您可以在不用sql甚至hql的情況下進行查詢。
如果我們要查詢User的所有信息我們可以如下使用Criteria查詢:
- Criteria crit = session.createCriteria(User.class);
- List users = crit.list();
- for (ListIterator iterator = users.listIterator(); iterator.hasNext(); ) {
- User user = (User) iterator.next();
- System.out.println("name: " + user.getName());
- System.out.println("age: " + user.getAge());
- }
我們要為查詢限定條件,可以通過net.sf.hibernate.expression.Expression設置Expression有很多的條件查詢方法下面舉一些例子:
- Criteria crit = session.createCriteria(User.class);
- crit.add(Expression.ge("age", new Integer(25)));
- List users = crit.list();
ge()表示大于等于,即age大于等于25的user。
- crit.add(Expression.gt("age", new Integer(20)));
- crit.add(Expression.between("weight", new Integer(60),new Integer(80)));
- List users = crit.list();
Criteria查詢結果中的between表示weight在60和80之間。
- crit.add(Expression.or(
- Expression.eq("age", new Integer(20)),
- Expression.isNull("age")
- ));
- List users = crit.list();
eq表示age為20的user。
- Criteria crit = session.createCriteria(User.class);
- crit.setFirstResult(51);
- crit.setMaxResult(50);
- List users = crit.list();
setMaxResult()設置返回的信息條數(shù),setFirstResult()設置查詢結果的初始位置,上面的程序段可以實現(xiàn)分頁。
以上提供了一個簡單的Criteria查詢實例。
【編輯推薦】