继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java仿百度假分页代码实现

judyW
关注TA
已关注
手记 47
粉丝 11
获赞 107

1 ,service 层代码实现

        Integer start = (pageNum - 1) * pageSize;
        Integer end = pageSize;
        List<entity> entityList;
        
        //调用mapper查询数据库
       entityList = entityPOMapper.query(start, end);

        SimplePageInfo simplePageInfo = SimplePageInfo.of(entityList );
        simplePageInfo.setNumber(pageNum);
        simplePageInfo.setPageSize(pageSize);

// 查询出来数据等于size,总数据量加一,页数加一
        if (entityList .size() == pageSize) {
            Integer totalElements = (pageNum * pageSize) + 1;
            Integer pages = pageNum + 1;
            simplePageInfo.setTotalElements(totalElements);
            simplePageInfo.setPages(pages);
        } else {
        //数据不够size
            Integer totalElements = ((pageNum - 1) * pageSize + entityList .size());
            Integer pages = pageNum;
            simplePageInfo.setTotalElements(totalElements);
            simplePageInfo.setPages(pages);
        }
        return simplePageInfo;
}

      
     

2,mapper

  <select .............>
        select..
        from ...
        where ...
        LIMIT #{start}, #{end}
    </select>

对于大表查询避免使用pageHelper,此插件 会进行count导致效率极低。可采用以上假分页。但是这种方式无法统计总数量以及页数,所以在不要求统计数量的场景下完全可以使用。

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP