MyBatis-Plus Page 分页不生效的问题解决

 更新时间:2024年07月11日 10:33:22   作者:面壁者-扬  
分页是常见的一种功能,本文主要介绍了MyBatis-Plus Page分页不生效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、可能原因

1)版本过低

2)需要增加 MybatisPlusInterceptor 配置

2、处理

1)引包,使用3.4.0 版本

  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>

2)配置, 根据使用的数据库类型可自行更改DbType

@Configuration
public class MyBatisPlusConfig {

    /**
     * 插件配置
     *
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

        // 向MyBatis-Plus的过滤器链中添加分页拦截器,需要设置数据库类型(主要用于分页方言)
        // pg使用
        //interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
        // mysql使用
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        // 添加乐观锁拦截器
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

补:其他原因

1、分页插件未配置:

确保你已经在 MyBatis-Plus 的配置中添加了分页插件。如果你使用的是 Spring Boot,通常是在 MybatisPlusConfig 类中添加分页插件的 Bean。

@Bean  
public PaginationInterceptor paginationInterceptor() {  
    return new PaginationInterceptor();  
}

SQL 映射文件或 Mapper 接口中的方法问题:
如果你在 XML 映射文件中写了自定义的 SQL,确保你没有手动写 LIMIT 和 OFFSET。分页插件会自动为你处理这些。

这里还特别需要注意一下3.4版本里可能上面的配置方式不生效,可以尝试下面的配置方式

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

2、调用方法时未正确设置 Page 对象:

在调用分页方法之前,你需要创建一个 Page 对象并设置当前页和每页显示的记录数。

Page<User> page = new Page<>(1, 10); // 第一页,每页10条记录  
IPage<User> userPage = userMapper.selectPage(page, null); // 假设没有查询条件  
List<User> userList = userPage.getRecords(); // 获取分页结果

3、版本冲突或配置问题:

确保你使用的 MyBatis-Plus 版本与其他依赖库没有冲突,并且你的项目配置是正确的。

4、检查数据库和表:

确保你的数据库和表支持分页查询(例如,MySQL 支持 LIMIT 和 OFFSET)。

查看日志:
开启 MyBatis 的日志功能,查看生成的 SQL 语句是否包含了 LIMIT 和 OFFSET。这可以帮助你确认分页插件是否已被正确调用。

事务管理:
如果你在使用事务,确保分页查询是在事务的上下文中正确执行的。

5、其他插件或拦截器冲突:

如果你的项目中使用了其他 MyBatis 插件或拦截器,确保它们之间没有冲突。

到此这篇关于MyBatis-Plus Page 分页不生效的问题解决的文章就介绍到这了,更多相关MyBatis-Plus Page 分页不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 从原理到实战解析Java Stream 的并行流性能优化

    从原理到实战解析Java Stream 的并行流性能优化

    本文给大家介绍Java Stream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-08-08
  • 关于springboot中对sqlSessionFactoryBean的自定义

    关于springboot中对sqlSessionFactoryBean的自定义

    这篇文章主要介绍了springboot中对sqlSessionFactoryBean的自定义方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • spring security登录认证授权的项目实践

    spring security登录认证授权的项目实践

    SpringSecurity主要实现了认证(Authentication)和授权(AccessControl),本文就来介绍一下spring security登录认证授权的项目实践,感兴趣的可以了解一下
    2025-01-01
  • springboot对接第三方微信授权及获取用户的头像和昵称等等

    springboot对接第三方微信授权及获取用户的头像和昵称等等

    这篇文章主要介绍了springboot对接第三方微信授权及获取用户的头像和昵称等等,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • mybatis-xml映射文件及mybatis动态sql详解

    mybatis-xml映射文件及mybatis动态sql详解

    XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名),这篇文章主要介绍了mybatis-xml映射文件及mybatis动态sql的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • Java根据日期截取字符串的多种实现方法

    Java根据日期截取字符串的多种实现方法

    在实际开发中,我们经常会遇到需要根据日期来截取字符串的需求,例如从文件名中提取日期信息,Java 提供了多种方法来实现根据日期来截取字符串的功能,本文将给大家介绍了Java根据日期截取字符串的多种实现方法,需要的朋友可以参考下
    2024-11-11
  • Spring Boot 3.x GraalVM原生镜像构建内存溢出问题解决方案

    Spring Boot 3.x GraalVM原生镜像构建内存溢出问题解决方案

    文章解析了Spring Boot 3.x与GraalVM Native Image构建过程中出现的内存溢出问题,从问题概述、根本原因、诊断工具、解决方案到高级调优技巧和应急解决方案,全面覆盖了构建优化的各个方面,本文给大家介绍的非常详细,感兴趣的朋友一起学习下吧
    2026-01-01
  • java自定义日期转化类示例

    java自定义日期转化类示例

    这篇文章主要介绍了java自定义日期转化类示例,需要的朋友可以参考下
    2014-05-05
  • MyBatis的各种查询功能结果接收类型的选择(推荐)

    MyBatis的各种查询功能结果接收类型的选择(推荐)

    文章介绍了MyBatis中查询结果的不同接收方式,包括单条数据和多条数据的处理方法,以及MyBatis的默认类型别名,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Zuul 实现网关转发的五种方式小结

    Zuul 实现网关转发的五种方式小结

    这篇文章主要介绍了Zuul 实现网关转发的五种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论