解决:mybatisplus分页查询失效,总是查询到所有数据
·
问题描述:
在前端使用Map<String, Object> params,把page,limit参数作为请求体传送到后端,但是分页查询老是全部返回。

解决方案:
1.配置mybatisplus拦截器PaginationInterceptor
PaginationInterceptor 是 MyBatis-Plus 提供的一个拦截器,用于在执行 SQL 查询时自动进行分页处理。它的原理是通过拦截 MyBatis 的 Executor 对象,在执行 SQL 之前修改 SQL 的语句,加入分页的逻辑。具体来说,PaginationInterceptor 在执行 SQL 之前会拦截 Executor 对象的 query 方法,在其中动态修改 SQL 语句,加入类似 LIMIT offset, size 的分页逻辑,其中 offset 表示偏移量,size 表示每页数据条数。
通过将 PaginationInterceptor 注入到 Spring 容器中,Spring Boot 就会在启动时自动加载并应用这个拦截器。一旦拦截器生效,所有的查询操作都会自动加入分页逻辑,从而实现了全局的分页功能,而无需手动在每个查询方法中编写分页逻辑。
配置类如下:
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}

2.自行编写SQL语句查询
SELECT * FROM table_name LIMIT offset, size;
其中,offset 表示偏移量(即跳过的行数),size 表示每页数据条数。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)