Springboot 使用 pagehelper 分页插件

第一步:使用 pagehelper 插件需要引入的jar包,笔者使用的是1.2.5版本

<!-- pagehelper 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
        

第二步:编写一个默认的的基础类用来接收前端传过来的参数

@Data
public abstract class SplitPageDTO {

    private Integer page = 1;

    private Integer pageSize = 10;

   private Boolean asc = false;

}

 

第三步 使用

控制器中 FindProjectVo 继承了基础的 SplitPageDTO

    @ApiOperation(value = "获取项目列表", nickname = "获取项目列表")
    @GetMapping("/getPrList")
    public CommonResult<PageUtil<ProjectInfoVo>> getPrList(FindProjectVo findProjectVO){
        
        PageUtil<ProjectInfoVo> rs= projectService.getPrList(findProjectVO);
        return new CommonResult(true,"操作成功",rs);
    }
    

 

注意:PageHelper.startPage(需要显示的第几个页面,每个页面显示的数量)

          PageInfo 包含了所有的页面数量等信息,可以参照自己的需求做修改,例如我的自己包装了下

    @Override
    public PageUtil<ProjectInfoVo> getPrList(FindProjectVo findProjectVO) {
        
        PageUtil<ProjectInfoVo> prjectList = new PageUtil<ProjectInfoVo>();
        try {
            PageHelper.startPage(findProjectVO.getPage(), findProjectVO.getPageSize());
            List<ProjectInfoExtend> projectInfoList =projectInfoMapper.getPrjectList(findProjectVO);
            PageInfo<ProjectInfoExtend> projectInfo = new PageInfo<ProjectInfoExtend>(projectInfoList);
            List<ProjectInfoVo> pjInfoVo = new ArrayList<ProjectInfoVo>();
            for(ProjectInfoExtend projectInfoExtend:projectInfoList) {
                ProjectInfoVo projectInfoVo = new ProjectInfoVo();
                projectInfoVo.setId(projectInfoExtend.getId());
                projectInfoVo.setBusinessRespName(projectInfoExtend.getBusinessrespname());
                projectInfoVo.setCreateDate(projectInfoExtend.getCreatedate());
                projectInfoVo.setCustomerName(projectInfoExtend.getCompanyname());
                projectInfoVo.setDepartmentName(projectInfoExtend.getDepartmentname());
                projectInfoVo.setPrName(projectInfoExtend.getPrname());
                projectInfoVo.setProgress(projectInfoExtend.getProgress());
                pjInfoVo.add(projectInfoVo);
            }
            
            prjectList.setPages(projectInfo.getPages());
            prjectList.setCurrent(projectInfo.getPageNum());
            prjectList.setRecords(pjInfoVo);
            prjectList.setSize(projectInfo.getPageSize());
            prjectList.setTotal(projectInfo.getTotal());
            
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
        }
        return prjectList;
    }

 

posted @ 2020-05-08 14:00  大姚666  阅读(327)  评论(0)    收藏  举报