Java MyBatis-Plus(4)MybatisPlus整合Pagehelper实现分页

序言

 

PageHelper的使用方法

    /**
     * pageInfo对象中属性含义
     * private int pageNum;//当前页码
     * private int pageSize;//设置每页多少条数据
     * private int size;//当前页有多少条数据
     * private int startRow;//当前页码第一条数据的
     * private int endRow;//当前页码的开始条
     * private int pages;//当前页码结束条
     * private int prePage;//上一页(页面链接使用)
     * private int nextPage;//下一页(页面链接使用)
     * private boolean isFirstPage;//是否为第一页
     * private boolean isLastPage;//是否为最后一页
     * private boolean hasPreviousPage;//是否有前一页
     * private boolean hasNextPage;//是否有下一页
     * private int navigatePages;//导航页码数(就是总共有多少页)
     * private int[] navigatePageNums;//导航页码数(就是总共有多少页),可以用来遍历
     * private int navigateFirstPage;//首页号
     * private int navigateLastPage;//尾页号
     */
    @Test
    void test() {
        int pageNum = 1;
        int pageSize = 3;
        //1.引入分页插件,pageNum是第几页,pageSize是每页显示多少条,默认查询总数count
        Page<ApArticle> page = PageHelper.startPage(pageNum, pageSize);
        //2.紧跟的查询就是一个分页查询-必须紧跟,这样才能保证安全分页, PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象
        List<ApArticle> articleList = apArticleService.list();
        //3.使用PageInfo包装查询后的结果,3是连续显示的条数
        PageInfo pageInfo = new PageInfo(articleList ,pageSize);
        System.out.println("总记录数:" + pageInfo.getTotal());
        System.out.println("总页数:" + pageInfo.getPages());
        System.out.println("一页的大小:" + pageInfo.getSize());
        System.out.println("是否有前一页:" + pageInfo.isHasPreviousPage());
    }
View Code

 

@Service
public class DocServiceImpl implements IDocService {
    @Autowired
    private DocMapper docMapper;

    @Override
    public PageInfo<Doc> selectDocByPage1(int currentPage, int pageSize) {
        PageHelper.startPage(currentPage, pageSize);
        List<Doc> docs = docMapper.selectByPageAndSelections();
        PageInfo<Doc> pageInfo = new PageInfo<>(docs);
        return pageInfo;
    }
}

参考文档说明,我使用了PageHelper.startPage(currentPage, pageSize);

我认为这种方式不入侵mapper代码。

其实一开始看到这段代码时候,我觉得应该是内存分页。其实插件对mybatis执行流程进行了增强,添加了limit以及count查询,属于物理分页

 

资料

MybatisPlus整合Pagehelper实现分页

PageHelper的使用方法

https://github.com/pagehelper/Mybatis-PageHelper

posted @ 2023-04-15 14:24  ~沐风  阅读(382)  评论(0编辑  收藏  举报