用Hibernate中的Criteria实现后台分页方法

在hibernate中,用criteria实现后台分页方法,不多说了直接看程序吧。

  • 下面首先根据查询条件和每页记录数获得记录列表:
  • Java代码

     
    /**
      * 根据不同条件获取日志列表
      * @param inter 接口名称
      * @param firstResult 起始记录
      * @param maxResult  每页显示的最大记录数
      * @return
    */
    public List<UipInterfaceLog> getUipInterfaceLogsByCondition (String inter,int firstResult, int maxResult) {
      List<UipInterfaceLog> result = null;
      Criteria criteria = this.getSession().createCriteria(UipInterfaceLog.class);
      criteria.add(Restrictions.like("inter", inter));
      criteria.setFirstResult(firstResult);
      criteria.setMaxResults(maxResult);
      result = criteria.list();
      return result;
    }
    

    在这里,为了简洁,我把查询的其他条件去掉了,用的时候可以自己添加,另外在使用的时候把Object.class换成相应的实体就可以了。
  • 下面是得到符合条件的记录总数
  • Java代码

    /**
      * 根据条件得到记录总数
      * @param inter
    */
    public int getUipInterfaceLogsByCondition (String inter) {
      List<UipInterfaceLog> result = null;
      Criteria criteria = this.getSession().createCriteria(Object.class);
      criteria.add(Restrictions.like("inter", inter));
    // return criteria.list().size; 一定不能写成这样,如果这样写,随着数据库中记录的增多,每次创建的对象会越来越多,这个方法执行速度会越来越慢,最终会内存溢出导致系统崩溃。
      return ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
    }
    


代码就这么多,很容易看明白的。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值