红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 开发工具
  3. 正文

DEBUG:MybatisPlus 分页失效

2025年5月22日 13点热度 0人点赞 0条评论

问题描述

Spring Boot 项目集成 MybatisPlus:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.12</version>
</dependency>

在调用分页相关的 API 时,分页无效:

IPage<User> page = new Page<>(pageNo, pageSize);
IPage<User> pageResult = this.page(page);

这里返回的结果中包含了表中的全部信息,查看 Mybatis 日志也能发现,实际执行的 SQL 语句并没有使用 LIMIT。

查看 MybatisPlus 官网,相关的文档和调用示例都没有发现有什么问题。

问题解决

较新版本的 MybatisPlus 中添加了分页插件的功能,该功能导致的一个后果是,没有启用分页插件的话,相关的分页 API 调用时不会添加 LIMIT 等 SQL 语句。因此这里需要启用 MybatisPlus 的分页插件(即使我们不使用)。

在最近几个版本,分页插件分离为单独依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-jsqlparser</artifactId>
    <version>3.5.12</version>
</dependency>

在配置类中定义分页插件的 Spring Bean:

@Configuration
public class MyBatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 添加分页插件并指定数据库类型(如 MySQL)
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

原始相关分页查询的 API 调用不需要改动。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: debug mybatis MyBatisPlus
最后更新:2025年5月22日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇
下一篇 >

文章评论

取消回复

*

code

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号