MybatisPlus的分页插件使用

在使用之前,首先要做一下相对应的mybatisPlus的分页配置
新建config下的mybatisPlusConfig类,添加代码如下

@Configuration
public class MybatisConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //1.创建分页查询插件
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        paginationInnerInterceptor.setMaxLimit(1000L);
        //2.添加分页插件
        interceptor.addInnerInterceptor(paginationInnerInterceptor);

        return interceptor;
    }
}

紧接着创建两个查询类

代码分别如下

package com.wms.domain.Query;

import lombok.Data;

import java.util.List;

@Data
public class PageQuery<T> {
    private Integer pageNo = 1;

    private Integer pageSize = 2;

    private String sortBy;

    private boolean isAac;

    private List<T> list;
}
package com.wms.domain.Query;

import lombok.Data;

@Data
public class UserQuery extends PageQuery{
    private String name;
}

创建的UserQuery可以继承PageQuery,这样无论再新建多少个其他的分页查询,在pageNo,pageSize这块儿都不用写了,方便很多,而在UserQuery里面只需要写在分页查找时的条件就行,比如我这个是name那就可以根据name查询。

下面是Controller里面的代码

   //查询(模糊,匹配)
    @GetMapping("/listP")
    public PageDTO<User> getPage(@RequestBody UserQuery userQuery){

        PageDTO<User> userPageDTO = iUserService.getPageQuery(userQuery);
        return userPageDTO;
    }



下面是serviceImpl实现类里面的代码

@Override
    public PageDTO<User> getPageQuery(UserQuery userQuery) {
        Page<User> page = Page.of(userQuery.getPageNo(), userQuery.getPageSize());
        Page<User> p = lambdaQuery().like(userQuery.getName() != null, User::getName, userQuery.getName())
                .page(page);
        PageDTO<User> dto = new PageDTO<>();
        dto.setTotal(p.getTotal());
        dto.setPages(p.getPages());
        dto.setList(p.getRecords());
        return dto;
    }

下面是User定义的实体类
 

package com.wms.domain.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author 选
 * @since 2024-05-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 账号
     */
    private String no;

    /**
     * 名字
     */
    private String name;

    /**
     * 密码
     */
    private String password;

    private Integer age;

    /**
     * 性别
     */
    private Integer sex;

    /**
     * 电话
     */
    private String phone;

    /**
     * ⻆⾊ 0超级管理员,1管理员,2普通账号
     */
    private Integer roleId;

    /**
     * 是否有效,Y有效,其他⽆效
     */
    private String isvalid;


}

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值