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;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章