Criteria对象的setMaxResults()方法可以限定查询返回的记录总数,其setFirstResult()方法可以设置满足条件的第1条记录的位置。二者配合时可以分页显示返回的数据

示例如下:

/**
     * 测试分页显示数据
     */
    public void testPage(){
         Session session = null;
          Transaction tx = null;
         
          session = HibernateUtils.getCurrentSession();
          tx = session.beginTransaction();
          Criteria criteria = session.createCriteria(Guestbook.class);
          Criterion criterion1 = Restrictions.like("name", "刘%");
          Criterion criterion2 = Restrictions.between("id", new Integer(1), new Integer(10));
         
          criteria.add(criterion1);
          criteria.add(criterion2);
          //添加查询结果排序
          //按名称排序
          criteria.addOrder(Order.asc("name"));
          //设置分页
          criteria.setMaxResults(4);
          criteria.setFirstResult(2);
          List<Guestbook> list = criteria.list();
          tx.commit();
         
          HibernateUtils.closeSession(session);
         
         Iterator<Guestbook> it = list.iterator();
         System.out.println("-----------------查询结果----------------");
         int i = 0;
         while(it.hasNext()){
           Guestbook g = (Guestbook) it.next();
           System.out.println("-----------第"+i+"条结果的信息-------------");
           System.out.println(g.toString());
           i++;
         }
    }