Mybatis-plus的分页查询SelectPage总是查询所有

问题描述: 在使用mybatisplus插件进行分页查询时分页参数不起作用,总是查出来全部数据。

原因分析: 查看打印的sql日志发现sql后面并没有limit条件,怀疑是缺少配置。

解决方案: 查阅资料通过添加配置类MybatisPlusConfig解决问题:

新建包config

新建配置类MybatisPlus

把代码复制粘贴进去

@Configuration
@ConditionalOnClass(value = {PaginationInterceptor.class})
class MybatisPlus {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }
}

如果不配置PaginationInterceptor,MP提供的分页方法是无效的,例如使用mysql,配置了PaginationInterceptor,调用MP提供的分页方法,假设使用selectPage方法,他会执行两条sql语句,一条查询总记录数的sql,一条查询当前页记录的sql是带limit分页条件的。如果不配置,调用selectPage只会执行一条查询记录的sql,并且不带limit,有兴趣你可以试试,很容易就能验证出来的。

mybatis-plus 分页数据量大时,查询速度慢,使用page.setOptimizeCount(true);优化

原文链接解决MybatisPlus插件分页查询不起作用,总是查询全部数据问题 - 云+社区 - 腾讯云 (tencent.com)

上一篇:从进度条和alert的出现顺序来了解浏览器 UI 渲染 & JS进程


下一篇:springboot-mybatisplus第一章节