• pagehelper 分页写法


    依赖

         
                com.github.pagehelper
                pagehelper-spring-boot-starter
                1.4.3
            
    
    • 1
    • 2
    • 3
    • 4
    • 5

    工具类

    
    import com.first.pet.vo.BasePageReq;
    import com.github.pagehelper.Page;
    import com.github.pagehelper.PageInfo;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.function.Function;
    
    /**
     * @author yangquan
     * @since 2023-09-18
     */
    public class PageInfoUtils {
    
        /**
         * pageInfo泛型转换
         */
        public static  PageInfo convert(PageInfo pageInfo, Function function) {
            Page page = (Page) pageInfo.getList();
            PageInfo newPageInfo = page.toPageInfo(function::apply);
            newPageInfo.setTotal(page.getTotal());
            return newPageInfo;
        }
    
        /**
         * pageInfo泛型转换
         */
        public static  PageInfo of(Integer num, Integer size, Long total, List list) {
            PageInfo result = new PageInfo<>();
            result.setPageNum(num);
            result.setPageSize(size);
            result.setTotal(total);
            result.setList(list);
            return result;
        }
    
        public static  PageInfo emptyPageInfo(BasePageReq basePageReq) {
            PageInfo pageInfo = new PageInfo<>();
            pageInfo.setPageNum(basePageReq.getPageNum());
            pageInfo.setPageSize(basePageReq.getPageSize());
            pageInfo.setList(new ArrayList<>());
            return pageInfo;
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    分页参数

    /**
     * 资源信息分页查询DTO
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class BasePageReq implements Serializable {
    
        @ApiModelProperty("第几页")
        @Min(value = 1, message = "分页参数错误,页码不应小于1条")
        private Integer pageNum;
    
        @ApiModelProperty("每页显示几条")
        @Min(value = 1, message = "分页参数错误,条数不应小于1条")
        @Max(value = 1000, message = "分页参数错误,条数应小于1000条")
        private Integer pageSize;
    }
    
    
    
    /**
     * @author yangquan
     * @since 2023-09-17
     */
    @ApiModel("管理员信息查询入参")
    @Data
    public class PlatformManagerUserReq extends BasePageReq {
        /**
         * 手机号
         */
        @ApiModelProperty("手机号")
        private String phone;
    
        /**
         * 角色Id
         */
        @ApiModelProperty("角色Id")
        private Integer roleId;
    
        public PlatformManagerUserReq(Integer pageNum, Integer size, String phone, Integer roleId) {
            super(pageNum, size);
            this.phone = phone;
            this.roleId = roleId;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    写法1、

        @Override
        public PageInfo getPlatformRoleList(PlatformRoleReq platformRoleReq) {
        //第一种写法   使用mybatis-plus的写法
            QueryWrapper roleRespWrapper = new QueryWrapper<>();
            roleRespWrapper.eq(StringUtils.isNotBlank(platformRoleReq.getRoleName()), "role_name", platformRoleReq.getRoleName());
            //设置当前页以及每页记录数
            PageInfo pageInfo = PageHelper.startPage(platformRoleReq.getPageNum(), platformRoleReq.getSize()).doSelectPageInfo(() ->
                    platformRoleMapper.selectList(roleRespWrapper));
                    第二种写法  使用自己写sql的方式
    //        PageInfo pageInfo = PageHelper.startPage(platformRoleReq.getPageNum(), platformRoleReq.getSize()).doSelectPageInfo(() ->
    //                platformRoleMapper.selectbyRoleId(platformRoleReq));
            if (pageInfo.getTotal() == 0) {
                return PageInfoUtils.emptyPageInfo(platformRoleReq.getPageNum(), platformRoleReq.getSize());
            }
            return pageInfo;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    写法2、

        @Override
        public PageInfo managerUserList(PlatformManagerUserReq platformManagerUserReq) {
            if (StringUtils.isNotBlank(platformManagerUserReq.getPhone())) {
                platformManagerUserReq.setPhone(EncryptUtils.encryptPhoneIdCard(platformManagerUserReq.getPhone()));
            }
            //设置当前页以及每页记录数
            PageInfo pageInfo = PageHelper.startPage(platformManagerUserReq.getPageNum(), platformManagerUserReq.getPageSize()).doSelectPageInfo(() ->
                    platformManagerUserMapper.managerUserList(platformManagerUserReq));
            if (pageInfo.getTotal() == 0) {
                return PageInfoUtils.emptyPageInfo(platformManagerUserReq);
            }
            return PageInfoUtils.convert(pageInfo, this::platformManagerUserResp);
        }
    
    
        /**
         * 数据转换
         *
         * @param platformManagerUserResp
         * @return
         */
        private PlatformManagerUserResp platformManagerUserResp(PlatformManagerUserResp platformManagerUserResp) {
            platformManagerUserResp.setPhone(EncryptUtils.decryptPhoneIdCard(platformManagerUserResp.getPhone()));
            return platformManagerUserResp;
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上。。。

  • 相关阅读:
    Dubbo之服务分组、分组聚合。
    安装配置MySQL
    Flamingo: a Visual Language Model for Few-Shot Learning
    17岁电竞少年追梦之旅,多次试训无果黯然返乡,沉淀一年,少年杨帆终圆梦~
    关于 pthread_create 传参的疑问
    前端实现页面内容的截图与下载(html2canvas)
    android studio专治项目运行不了
    RabbitMQ_消息确认机制
    【操作系统】IO管理
    java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/taiguolaotu/article/details/133017643