第一步:使用 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; }