自己写的分页
package com.hainei.samp.common.utils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Component; import java.util.LinkedList; import java.util.List; /** * Created with IntelliJ IDEA. * User:wq * Date:2022/6/13 * Time: 14:45 * Description: No Description */ @Component public class PageInfoUtils { public static <T> PageInfo<T> list2PageInfo(List<T> arrayList, Integer pageNum, Integer pageSize) { //实现list分页 PageHelper.startPage(pageNum, pageSize); int pageStart = pageNum == 1 ? 0 : (pageNum - 1) * pageSize; int pageEnd = arrayList.size() < pageSize * pageNum ? arrayList.size() : pageSize * pageNum; List<T> pageResult = new LinkedList<T>(); if (arrayList.size() > pageStart) { pageResult = arrayList.subList(pageStart, pageEnd); } PageInfo<T> pageInfo = new PageInfo<T>(pageResult); //获取PageInfo其他参数 pageInfo.setTotal(arrayList.size()); int endRow = pageInfo.getEndRow() == 0 ? 0 : (pageNum - 1) * pageSize + pageInfo.getEndRow() + 1; pageInfo.setEndRow(endRow); boolean hasNextPage = arrayList.size() <= pageSize * pageNum ? false : true; pageInfo.setHasNextPage(hasNextPage); boolean hasPreviousPage = pageNum == 1 ? false : true; pageInfo.setHasPreviousPage(hasPreviousPage); pageInfo.setIsFirstPage(!hasPreviousPage); boolean isLastPage = (arrayList.size() > pageSize * (pageNum - 1) && arrayList.size() <= pageSize * pageNum) ? true : false; pageInfo.setIsLastPage(isLastPage); int pages = arrayList.size() % pageSize == 0 ? arrayList.size() / pageSize : (arrayList.size() / pageSize) + 1; pageInfo.setNavigateLastPage(pages); int[] navigatePageNums = new int[pages]; for (int i = 1; i < pages; i++) { navigatePageNums[i - 1] = i; } pageInfo.setNavigatepageNums(navigatePageNums); int nextPage = pageNum < pages ? pageNum + 1 : 0; pageInfo.setNextPage(nextPage); pageInfo.setPageNum(pageNum); pageInfo.setPageSize(pageSize); pageInfo.setPages(pages); pageInfo.setPrePage(pageNum - 1); pageInfo.setSize(pageInfo.getList().size()); int starRow = arrayList.size() < pageSize * pageNum ? 1 + pageSize * (pageNum - 1) : 0; pageInfo.setStartRow(starRow); return pageInfo; } public static <T> PageVO<T> convertPage(PageInfo<T> t){ PageVO<T> result = new PageVO<>(); result.setTotal(t.getTotal()); result.setTotalPages(t.getPages()); result.setPageNum(t.getPageNum()); result.setPageSize(t.getPageSize()); result.setList(t.getList()); return result; } }
自己分页转换成特定格式返回
@Override public PageVO<PartyDynamicContentBO> listRecord(PartyDynamicContentQueryBO partyDynamicContentQueryBO) { // PageHelper.startPage(partyDynamicContentQueryBO.getPageNum(),partyDynamicContentQueryBO.getPageSize()); List<PartyDynamicContentBO> partyDynamicContentBOS = partyDynamicContentMapper.listAll(partyDynamicContentQueryBO); List<PartyDynamicContentBO> stickList = stick(partyDynamicContentBOS, partyDynamicContentQueryBO.getPageNum()); List dataList = paging.getpage(stickList, partyDynamicContentQueryBO.getPageNum(), partyDynamicContentQueryBO.getPageSize()); PageInfo<PartyDynamicContentBO> pageInfo = new PageInfo<>(dataList); pageInfo.setPageNum(partyDynamicContentQueryBO.getPageNum()); pageInfo.setTotal(dataList.size()); PageVO<PartyDynamicContentBO> partyDynamicContentBOPageVO = convertPage(pageInfo); return partyDynamicContentBOPageVO; } PageVO<PartyDynamicContentBO> convertPage(PageInfo<PartyDynamicContentBO> pageInfo){ PageVO<PartyDynamicContentBO> result=new PageVO<>(); result.setTotalRows(pageInfo.getTotal()); result.setTotalPages(pageInfo.getPages()); result.setPageNum(pageInfo.getPageNum()); result.setCurPageSize(pageInfo.getSize()); result.setPageSize(pageInfo.getPageSize()); result.setList(pageInfo.getList()); return result; }
@Component public class Paging { public List getpage(List list, Integer pageNum, Integer pageSize){ int i = (pageNum-1)*pageSize; List listpage = new ArrayList(); for(Integer j=i;j<i+pageSize;j++){ if(j<list.size()){ listpage.add(list.get(j)); }else{ break; } } return listpage; } }
详细代码

package com.hainei.service.impl.party; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hainei.common.constants.BaseConstant; import com.hainei.common.enums.YesOrNo; import com.hainei.common.token.JwtTokenUtil; import com.hainei.common.utils.PageUtil; import com.hainei.common.utils.PageVO; import com.hainei.common.utils.Paging; import com.hainei.mapper.party.PartyDynamicContentMapper; import com.hainei.pojo.bo.party.PartyDynamicContentBO; import com.hainei.pojo.bo.party.PartyDynamicContentQueryBO; import com.hainei.pojo.model.party.PartyDynamicContent; import com.hainei.service.party.PartyDynamicContentService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; /** * Created with IntelliJ IDEA. * User:wq * Date:2022/1/20 * Time: 11:31 * Description: No Description */ @Service @Transactional public class PartyDynamicContentServiceImpl implements PartyDynamicContentService { @Autowired private PartyDynamicContentMapper partyDynamicContentMapper; @Autowired private Paging paging; @Autowired private HttpServletRequest request; @Override public void insertOrUpdateRecord(PartyDynamicContentBO partyDynamicContentBO) { String accessToken = request.getHeader(BaseConstant.ACCESS_TOKEN); String userId = JwtTokenUtil.getUserId(accessToken); PartyDynamicContent partyDynamicContent = new PartyDynamicContent(); BeanUtils.copyProperties(partyDynamicContentBO,partyDynamicContent); if(StringUtils.isNotBlank(partyDynamicContentBO.getId())){ partyDynamicContent.setGmtUpdatedBy(userId); partyDynamicContent.setGmtUpdatedOn(new Date()); partyDynamicContentMapper.updateByPrimaryKeySelective(partyDynamicContent); }else { partyDynamicContent.setGmtCreatedBy(userId); partyDynamicContent.setGmtCreatedOn(new Date()); String id = UUID.randomUUID().toString().replaceAll("-", ""); partyDynamicContent.setId(id); partyDynamicContent.setIsDeleted(YesOrNo.NO.type); partyDynamicContentMapper.insertSelective(partyDynamicContent); } } @Override public void deleteRecord(String id) { if(StringUtils.isNotBlank(id)){ PartyDynamicContent partyDynamicContent = new PartyDynamicContent(); partyDynamicContent.setIsDeleted(YesOrNo.YES.type); partyDynamicContent.setId(id); partyDynamicContentMapper.updateByPrimaryKeySelective(partyDynamicContent); } } @Override public PageVO<PartyDynamicContentBO> listRecord(PartyDynamicContentQueryBO partyDynamicContentQueryBO) { // PageHelper.startPage(partyDynamicContentQueryBO.getPageNum(),partyDynamicContentQueryBO.getPageSize()); List<PartyDynamicContentBO> partyDynamicContentBOS = partyDynamicContentMapper.listAll(partyDynamicContentQueryBO); List<PartyDynamicContentBO> stickList = stick(partyDynamicContentBOS, partyDynamicContentQueryBO.getPageNum()); List dataList = paging.getpage(stickList, partyDynamicContentQueryBO.getPageNum(), partyDynamicContentQueryBO.getPageSize()); PageInfo<PartyDynamicContentBO> pageInfo = new PageInfo<>(dataList); pageInfo.setPageNum(partyDynamicContentQueryBO.getPageNum()); pageInfo.setTotal(dataList.size()); PageVO<PartyDynamicContentBO> partyDynamicContentBOPageVO = convertPage(pageInfo); return partyDynamicContentBOPageVO; } PageVO<PartyDynamicContentBO> convertPage(PageInfo<PartyDynamicContentBO> pageInfo){ PageVO<PartyDynamicContentBO> result=new PageVO<>(); result.setTotalRows(pageInfo.getTotal()); result.setTotalPages(pageInfo.getPages()); result.setPageNum(pageInfo.getPageNum()); result.setCurPageSize(pageInfo.getSize()); result.setPageSize(pageInfo.getPageSize()); result.setList(pageInfo.getList()); return result; } @Override public PartyDynamicContentBO getById(String id) { if(StringUtils.isNotBlank(id)){ PartyDynamicContentBO byId = partyDynamicContentMapper.getById(id); return byId; } return null; } @Override public void changeStick(String preStackId, String currentId) { //之前置顶数据至为0 PartyDynamicContent preStackObject = new PartyDynamicContent(); preStackObject.setIsSticked(YesOrNo.NO.type); preStackObject.setId(preStackId); partyDynamicContentMapper.updateByPrimaryKeySelective(preStackObject); //需要置顶数据置为1 PartyDynamicContent toStackObject = new PartyDynamicContent(); toStackObject.setIsSticked(YesOrNo.YES.type); toStackObject.setId(currentId); partyDynamicContentMapper.updateByPrimaryKeySelective(toStackObject); } /** * 置顶 数据 */ List<PartyDynamicContentBO> stick(List<PartyDynamicContentBO> partyDynamicContentBOList,Integer pageNum){ if(pageNum == 1){ List<PartyDynamicContentBO> list = new ArrayList<>(); if(CollectionUtils.isNotEmpty(partyDynamicContentBOList)){ partyDynamicContentBOList.stream().filter(p-> p.getIsSticked() != null && p.getIsSticked() == 1).forEach(m->{ list.add(m); }); partyDynamicContentBOList.stream().filter(m->m.getIsSticked() != null && m.getIsSticked() ==0).forEach(p->{ list.add(p); }); } return list; } return partyDynamicContentBOList; } }
个人学习笔记,记录日常学习,便于查阅及加深,仅为方便个人使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)