mybatis-plus分页配置

本文介绍MyBatis-Plus的分页配置方法,包括自定义分页配置类、YAML配置、引导类配置及测试调用等步骤。通过具体代码示例展示如何实现数据库查询的分页功能。

在操作书库的时候,总是不可避免的遇到分页。在此记录一下mybatis-plus分页配置

分页配置类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult implements Serializable {

    private Long counts = 0l;//总记录数
    private Integer pagesize = 10;//页大小
    private Long pages = 0l;//总页数
    private Integer page = 1;//当前页码
    private List<?> items = Collections.emptyList(); //列表

    public PageResult(Integer page, Integer pagesize, Long counts, List list) {
        this.page = page;
        this.pagesize = pagesize;
        this.items = list;
        this.counts = counts;
        this.pages = counts % pagesize == 0 ? counts / pagesize : counts / pagesize + 1;
    }
}

YAL配置

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tb_   # 表名前缀
      id-type: auto   # id策略为自增长

引导类配置

   @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

在这里插入图片描述

测试调用 Mapper

public interface BlackListMapper extends BaseMapper<BlackList> {

    @Select("select * from tb_user_info where id in( \n" +
            "select black_user_id from tb_black_list where user_id = #{userId}  \n" +
            ") ")
    IPage<UserInfo> findBlackList(Page pages, Long userId);
}

测试调用 Server

    @Override
    public IPage<UserInfo> blacklist(Integer page, Integer pagesize, Long userId) {
        //1、构建分页参数对象Page
        Page pages = new Page(page, pagesize);
        //2、调用方法分页(自定义编写 分页参数Page,sql条件参数)
        return blackListMapper.findBlackList(pages, userId);
    }

测试调用 Controller

public PageResult blacklist(Integer page, Integer pagesize) {
        //获取用户id
        Long userId = TokenThreadLocal.getUserId();
        //查询用户黑名单列表
        IPage<UserInfo> iPage = userInfoApi.blacklist(page, pagesize, userId);
        //3、对象转化,将查询的Ipage对象的内容封装到PageResult中
        PageResult pageResult = new PageResult(page, pagesize, iPage.getTotal(), iPage.getRecords());
        return pageResult;
    }
MyBatis-Plus 3.5.12 实现分页配置,可按以下步骤进行: ### 添加依赖 在项目的 `pom.xml` 中添加 MyBatis-Plus 和 SQL 解析扩展组件的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.12</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> <version>3.5.12</version> </dependency> ``` 其中,`mybatis-plus-jsqlparser` 是 MyBatis-Plus 提供的用于 SQL 解析的扩展组件,基于 JSqlParser 库实现,主要用于处理动态 SQL 生成、SQL 注入防护以及复杂的 SQL 解析场景 [^1]。 ### 配置分页插件 通过 Java 配置添加分页插件,示例代码如下: ```java package com.xxx.common.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 根据实际情况 return interceptor; } } ``` 在上述代码中,创建了一个 `MybatisPlusInterceptor` 拦截器,并向其中添加了 `PaginationInnerInterceptor` 分页拦截器,数据库类型根据实际情况设置,这里以 MySQL 为例 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值