同时使用mybatis-plus 和 pagehelper 的分页插件导致 分页失效问题,解决!
- 经验分享
- 时间:2023-12-07 15:31
- 2075人已阅读
简介
前言:目前在java的项目中,使用的主流的方式就是一个基于mybatis-plus的.page()的分页,当然这种分页方式是适用于一些简单的查询和简单场景(不想写sql)下。对于多表联查等场景,还是需要通过手写sql来实现复杂查询。那么这个时候又想要有工具帮助我们自动分页,这时候就可以使用pageHelper的分页插件。1.问题描述:在同时使用mybatis-plus和pageHelper时,分页
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
前言:目前在java的项目中,使用的主流的方式就是一个基于mybatis-plus的.page()的分页,当然这种分页方式是适用于一些简单的查询和简单场景(不想写sql)下。对于多表联查等场景,还是需要通过手写sql来实现复杂查询。那么这个时候又想要有工具帮助我们自动分页,这时候就可以使用pageHelper的 分页插件。
1. 问题描述:在同时使用mybatis-plus和pageHelper时,分页失效。
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency>
2. 不废话 直接上解决方法:添加一个相关配置类,
@Configuration public class MybatisPlusConfiguration { /** * pageHelper分页插件&&mybatisPlus分页插件 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return mybatisPlusInterceptor; } @Bean public PaginationInnerInterceptor paginationInterceptor() { return new PaginationInnerInterceptor(); } @Bean PageInterceptor pageInterceptor() { PageInterceptor pageInterceptor = new PageInterceptor(); Properties properties = new Properties(); properties.setProperty("helperDialect", "mysql"); pageInterceptor.setProperties(properties); return pageInterceptor; } }
那么加上这一配置类之后,mybatis-plus的分页和pageHelper的分页就都会会生效了。需要注意的是由于两者都需要用到page,需要在使用的时候区分使用的page是哪个下面的。
例如:使用mybatis-plus的分页时,确保page是com.baomidou.mybatisplus.extension.plugins.pagination下的,
在使用pageHelper的时候确保page是在
com.github.pagehelper