pagehelper 分页实现-PageHelper.startPage方式

说明

分页方式有很多,本文讲解 PageHelper.startPage() 分页方式

在 service中修改,如下:

//设置分页
Page page = PageHelper.startPage(pageNum, pageSize, true);
List list = mapper.query(); // 注意:后面紧跟 MyBatis 查询方法

//将查询结果封装成PageInfo对象,才能将分页信息发送给前端
PageInfo pageInfo = new PageInfo(list,page.getPages());

注意:一句 PageHelper.startPage ,对应一次 mybatis查询,要紧跟着,否则,分页可能会失效,详见 pagehelper 分页失效

PageHelper.startPage 解释

PageHelper.startPage(pageNum, pageSize, true);

参数解释:

  • pageNum:当前页数
  • pageSize:每页显示记录数
  • true:显示总共记录数

返回值: 返回 Page 对象

注意

不能将 Page 对象返回给前端,前端 得不到 分页属性信息,如:分页总数,总共记录数等

PageInfo() 解释

将查询结果封装成 PageInfo 对象,才能将 分页属性信息 发送给前端

PageInfo pageInfo = new PageInfo(list,page.getPages());

参数解释:

  • list:查询结果
  • 第二个参数:传入总共页数,属性 navigatePages 显示该数字

PageInfo 属性

详见 pagehelper PageInfo属性解释

实现方式一(推荐)

有小改动,包含非常全面的分页属性

public PageInfo<Goods> mgrQueryList(String name,String startDate,String endDate,Integer status,int pageNum,int pageSize) throws Exception{
        PageHelper.startPage(pageNum, pageSize, true);
        //写在PageHelper.startPage下面,才会分页
        List list=dao.mgrQueryList(name, startDate, endDate,status);
        //用PageInfo对结果进行包装,PageInfo包含非常全面的分页属性
        PageInfo<Goods> pageInfo=new PageInfo<Goods>(list);

        return pageInfo;
    }

注意:不能将 page 对象返回给前端,会得不到 pageNum、pageSize 等信息

实现方式二(不推荐)

有小改动,只有常用的分页属性

public Page<Goods> mgrQueryList(String name,String startDate,String endDate,Integer status,int pageNum,int pageSize) throws Exception{
        PageHelper.startPage(pageNum, pageSize, true);
        //写在PageHelper.startPage下面,才会分页
        List list=dao.mgrQueryList(name, startDate, endDate,status);

        return (Page) list;//只有常用的分页属性
    }

注意:不能将 page 对象返回给前端,会得不到 pageNum、pageSize 等信息