周凯,个人博客

  • 前端
  • 嵌入式
  • 工具
  • 后端
  • 随笔
个人记录
  1. 首页
  2. 后端
  3. java
  4. 正文

Mybatis-PageHelper java工具封装

2025年 9月 4日 19点热度 0人点赞 0条评论
  • pom.xml

    安装PageHelper依赖

  • PageListVO

    package com.xx.streammediatranscoding.model;
    
    import lombok.Data;
    
    import java.util.List;
    
    @Data
    public class PageListVO {
      private List list;
      PaginationVO pagination;
    
    }
  • Pagination

    package com.xx.streammediatranscoding.model;
    
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import lombok.Data;
    
    import java.util.List;
    
    @Data
    public class Pagination {
      private long pageSize=20;
      private String sort="DESC";
      private String sidx="";
      private long currentPage=1;
    
      @JsonIgnore
      private long total;
      @JsonIgnore
      private long records;
    
      public  List setData(List data, long records) {
          this.total = records;
          return data;
      }
    
    }
  • PaginationVO

    package com.xx.streammediatranscoding.model;
    
    import lombok.Data;
    
    @Data
    public class PaginationVO {
      private Long currentPage;
      private Long pageSize;
      private Integer total;
    }
  • PageUtil

    public class PageUtil {
    
      private PageUtil() {
          // 私有构造方法,防止实例化
      }
    
      /**
       * 执行分页查询并包装成PageListVO
       * @param pagination 分页信息对象
       * @param query 查询逻辑,返回List结果
       * @param  数据类型
       * @return 组合后的分页结果对象
       */
      public static  PageListVO executePage(Pagination pagination, PageQuery query) {
          // 设置分页参数
          PageHelper.startPage((int) pagination.getCurrentPage(), (int) pagination.getPageSize());
    
          // 执行查询
          List resultList = query.query();
    
          // 调用您的分页转换方法
          return toPageListVO(pagination, resultList);
      }
    
      // 使用您的toPageListVO方法
      public static  PageListVO toPageListVO(Pagination pagination, List list) {
          PageInfo pageInfo = new PageInfo<>(list);
          // 使用单独的设置语句
          pagination.setTotal(pageInfo.getTotal());
          pagination.setCurrentPage(pageInfo.getPageNum());
          pagination.setPageSize(pageInfo.getPageSize());
          pagination.setData(list, pageInfo.getTotal());
          PageListVO result = new PageListVO<>();
          result.setPagination(JsonUtil.getJsonToBean(pagination, PaginationVO.class));
          result.setList(list);
          return result;
      }
    
      // 分页查询函数式接口
      @FunctionalInterface
      public interface PageQuery {
          List query();
      }
    }

🎯 拓展阅读提示

本文涉及的内容已同步至公众号后台,我会在那里分享更多深度内容和实用技巧

→ 点击关注:一行梦境

公众号二维码
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2025年 9月 4日

周凯

这个人很懒,什么都没留下

打赏 点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022-现在 周凯,个人博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蒙ICP备18004897号