pagehelper分页

做~自己de王妃 提交于 2020-01-21 04:27:44

1.分页方法PageUtils

请见前几期:https://blog.csdn.net/weixin_44145478/article/details/102461178

public class Teacher {
    private String name;
    private Integer age;
    private String sex;
    //set get...
}

通常情况

解析:
(1)封装的PageUtils.startPage(num,size),这个方法就是类似我们数据库操作的limit start ,count
(2)得到的对象里面包含很多的字段信息,需要的有(总页数,总条数,当前页,以及该页数据)
(3)如果我们只想得到分页处理之后我们的实体对象的结果,那么就调用PageUtils对象的getDataList()方法即可。

  @Test
    public void test3() {
        PageBaseReqVo pageBaseReqVo = new PageBaseReqVo();
        pageBaseReqVo.setPageNo(2);
        pageBaseReqVo.setPageSize(10);
       
        PageUtils.setStartPage(pageBaseReqVo.getPageNo(), pageBaseReqVo.getPageSize());
        //根据条件查询数据......
        List<Teacher> teachers = teacherMapper.selectAll();
        PagedResult<Teacher> teacherPagedResult = PageUtils.toPagedResult(teachers);
        System.out.println(teacherPagedResult);
}

查询数据处理产生分页问题

使用分页查询数据库得到的数据不做处理,直接返回给前端不会有问题,如果处理分页的数据,会造成(总页数为1,当前页1,全部数据只有当前数据量)

正确做法

   @Test
    public void test2() {
        UserReqVo userReqVo = new UserReqVo();
        userReqVo.setName("a");
        userReqVo.setPageNo(2);
        userReqVo.setPageSize(10);

        //PageUtils.startPage(pageNum , pageSize),这个方法就是类似我们数据库操作的limit start ,count
        PageUtils.setStartPage(userReqVo.getPageNo(), userReqVo.getPageSize());
        List<TeacherRespVo> resps = new ArrayList<>();

        //根据条件查询数据(select id, `name`, age, sex FROM teacher LIMIT 10, 10;)
        List<Teacher> teachers = teacherMapper.selectAll();
        //得到分页的结果对象(总页数,总条数,当前页,以及该页数据)
        PagedResult<Teacher> pagedResult = PageUtils.toPagedResult(teachers);
        for (Teacher teacher : pagedResult.getDataList()) {
            //数据处理(返回合适的类型和格式)
            TeacherRespVo teacherRespVo = new TeacherRespVo();
            BeanUtils.copyProperties(teacher, teacherRespVo);
            resps.add(teacherRespVo);
        }
        // 根据条件查询的所有数据与处理后返回的数据,不是同一对象,重新设置(总页数,总条数,当前页,以及该页数据)
        PagedResult<TeacherRespVo> respVoPagedResult = new PagedResult<>();
        BeanUtils.copyProperties(pagedResult, respVoPagedResult);
        respVoPagedResult.setDataList(resps);
        System.out.println(respVoPagedResult);
    }

更多分页用法

参考:https://blog.csdn.net/cs_hnu_scw/article/details/80718467

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!