Hibernate分页小结


通常使用的Hibernate通常是三种:hql查询,QBC查询和QBE查询:
1、QBE(Qurey By Example)检索方式

QBE是最简单的,但是功能也是最弱的,QBE的功能不是特别强大,仅在某些场合下有用。一个典型的使用场合就是在查询窗口中让用户输入一系列的查询条件,然后返回匹配的对象。QBE只支持=和like比较运算符,无法不大区间值,及其或的匹配。在这种情况下,还是采用HQL检索方式或QBC检索方式。

  1. /** 
  2.  * @function 根据传递过来的Object,分页显示在数据库中与其匹配的记录 
  3.  * @param pageNo 
  4.  *            当前页数 
  5.  * @param pageSize 
  6.  *            每页显示的记录数 
  7.  * @param object 
  8.  *            将查询条件封装为Object 
  9.  * @return 将查询结果封装为Pager返回 
  10.  */  
  11. public Pager findPageByExample(int pageNo, int pageSize, Object object)  
  12. {  
  13.     Pager pager = null;  
  14.     try  
  15.     {  
  16.         Criteria criteria = this.getSession().createCriteria(  
  17.                 Class.forName(this.getEntity()));  
  18.   
  19.         if (object != null)  
  20.         {  
  21.             criteria.add(Example.create(object).enableLike());  
  22.         }  
  23.   
  24.         // 获取根据条件分页查询的总行数   
  25.         int rowCount = (Integer) criteria.setProjection(  
  26.                 Projections.rowCount()).uniqueResult();  
  27.         criteria.setProjection(null);  
  28.   
  29.         criteria.setFirstResult((pageNo - 1) * pageSize);  
  30.         criteria.setMaxResults(pageSize);  
  31.   
  32.         List result = criteria.list();  
  33.   
  34.         pager = new Pager(pageSize, pageNo, rowCount, result);  
  35.   
  36.     } catch (RuntimeException re)  
  37.     {  
  38.         throw re;  
  39.     } finally  
  40.     {  
  41.         return pager;  
  42.     }  
  43.   
  44. }  

相关内容