我是靠谱客的博主 美丽刺猬,最近开发中收集的这篇文章主要介绍分页 PageListUtil,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、星云2.0 PageListUtil

这个属于内存分页

内存分页:数据库查出所有再在内存(或者前端)进行分页
物理分页:数据库查出来就已经是分页好的了

1。使用

service

1.先正常查出集合
2.然后PageListUtil

//接口
Page<OrgDeptPageBO> selectDeptPageList(OrgDeptPageSearchBO orgDeptPageSearchBO, Pageable pageable);


//实现类
import org.springframework.data.domain.Pageable;
import com.nebula.microservice.operationmanage.utils.PageListUtil;

public Page<OrgStationPageDTO> selectStationPage(Pageable pageable) {
        return PageListUtil.listConvertToPage(this.selectStationList(orgStationPageSearchDTO), pageable);
}

控制器

@PostMapping("/page")
 public ResponseEntity<List<OrgDeptPageBO>> page(OrgDeptPageSearchBO orgDeptPageSearchBO, Pageable pageable) {
     Page<OrgDeptPageBO> stationPage = orgDeptService.selectDeptPageList(orgDeptPageSearchBO, pageable,SecurityUtil.getOperatorId());
     HttpHeaders httpHeaders = new HttpHeaders();
     httpHeaders.add(CommonConstants.HEADER_TOTALSIZE, stationPage.getTotalElements() + "");
     return new ResponseEntity<>(stationPage.getContent(), httpHeaders, HttpStatus.OK);
 }

3.API调用传参

在这里插入图片描述

2。 PageListUtil源码

package com.nebula.microservice.operationmanage.utils;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

import java.util.List;

public class PageListUtil {
    public static  <T> Page<T> listConvertToPage(List<T> list, Pageable pageable) {
        int start = (int) pageable.getOffset();
        int end = (start + pageable.getPageSize()) > list.size() ? list.size() : (start + pageable.getPageSize());
        return new PageImpl<T>(list.subList(start, end), pageable, list.size());
    }
}

二。星云陈LC com.github.pagehelper.PageInfo;

service

//接口
PageInfo<StationEvaluateVO> stationEvaluation(String stationId, PageInfo pageInfo);

//实现类
public PageInfo<StationEvaluateVO> stationEvaluation(String stationId, PageInfo pageInfo) {
    return PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize()).doSelectPageInfo(() -> 
           homeStationRepository.stationEvaluationList(stationId));  //这句话正常查出集合
}

控制层

PageInfo<StationEvaluateVO> stationEvaluateVOPageInfo = homeStationService.stationEvaluation(stationId, pageInfo);

三、道通 mybatis-plus

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

一、直接分页查询
Page<OpLocationOperationEntity> searchPage= new Page<>(current, pageSize);
Page<OpLocationOperationEntity> resultPage = userMapper.selectPage(searchPage,QueryWrapper);


二、查出集合,然后将集合组装成一个分页对象
Page<GunListPageVO> resultPage = new Page<>(current, pageSize);
resultPage.setRecords(gunListPageVOList);
resultPage.setTotal(gunListPageVOList.size());




三、查出分页,然后将分页里面的记录组装成一个分页对象

1.查出分页
Page<OpLocationEvseEntity> searchPage = new Page<>(gunListPageDTO.getCurrent(), gunListPageDTO.getPageSize());
Page<OpLocationEvseEntity> evsePage = opLocationEvseMapper.selectPage(searchPage, opLocationEvseEntityQueryWrapper);

2、将分页里面的集合组装成新的对象集合
if (evsePage.getRecords().size() > 0) {
       List<OpLocationEvseEntity> evseEntities = evsePage.getRecords();
       List<GunListPageVO> gunListPageVOList = new ArrayList<>();
       for (OpLocationEvseEntity opLocationEvseEntity : evseEntities) {
           GunListPageVO gunListPageVO = new GunListPageVO();
           gunListPageVOList.add(gunListPageVO);
       }
   }
}

//3、新的对象集合组成新的分页对象
Page<GunListPageVO> resultPage = new Page<>(gunListPageDTO.getCurrent(), gunListPageDTO.getPageSize());
resultPage.setRecords(gunListPageVOList);
resultPage.setTotal(evsePage.getTotal());

最后

以上就是美丽刺猬为你收集整理的分页 PageListUtil的全部内容,希望文章能够帮你解决分页 PageListUtil所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部