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 分页不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- MybatisPlus实现分页效果并解决错误问题:cant found IPage for args
- Mybatis-plus的selectPage()分页查询不生效问题解决
- Mybatis-Plus或PageHelper多表分页查询总条数不对问题的解决方法
- mybatis-plus分页如何接收前端参数limit和page
- 浅谈mybatisPlus的Ipage分页和map参数的问题
- Springboot中MyBatisplus使用IPage和Page分页的实例代码
- 解决mybatis plus 分页查询有条数,total和pages都是零的问题
- Mybatis Plus整合PageHelper分页的实现示例
相关文章
关于springboot中对sqlSessionFactoryBean的自定义
这篇文章主要介绍了springboot中对sqlSessionFactoryBean的自定义方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12
springboot对接第三方微信授权及获取用户的头像和昵称等等
这篇文章主要介绍了springboot对接第三方微信授权及获取用户的头像和昵称等等,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01
mybatis-xml映射文件及mybatis动态sql详解
XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名),这篇文章主要介绍了mybatis-xml映射文件及mybatis动态sql的相关知识,感兴趣的朋友跟随小编一起看看吧2024-12-12
Spring Boot 3.x GraalVM原生镜像构建内存溢出问题解决方案
文章解析了Spring Boot 3.x与GraalVM Native Image构建过程中出现的内存溢出问题,从问题概述、根本原因、诊断工具、解决方案到高级调优技巧和应急解决方案,全面覆盖了构建优化的各个方面,本文给大家介绍的非常详细,感兴趣的朋友一起学习下吧2026-01-01


最新评论