IPage能正常显示数据,但是total一直等于0

问题描述:代码中使用Mybatis-Plus的自动分页,getRecords()正确,但是getTotal()一直等于0

代码逻辑没问题,所以找Mybatis-Plus配置上的问题

尝试的方法:

1.  配置类上是否加了@Configuration

2. 统计的SQL被自动优化了,导致统计结果不准确--->关闭Mybatis-Plus的自动优化

Page<?> page = new Page<>(currentPage, size);    // 开启分页
page.setOptimizeCountSql(false);    // 关闭mybatisPlus的自动优化

   这样的方法效率较低,可以自己写count sql

page.setSearchCount(false);
page.setTotal(mapper.listCount(sql));

参考文章: MyBatis-Plus的IPage分页total不正确问题

                    MybatisPlus自动分页,total不准确的问题

3. 设置数据库的类型

PaginationInnerInterceptor page = new PaginationInnerInterceptor();
page.setDbType(DbType.MYSQL);
return page;

4. 检查mybatis-plus-boot-starter版本

    3.4.0版本对此部分有更新,如果是旧版本升级,会出现分页失效问题,同时idea会提示PaginationInterceptor过时,新版本改用了MybatisPlusInterceptor

 最终是把PaginationInnerInterceptor换成了MybatisPlusInterceptor解决

成功的代码如下:

@Configuration
public class MybatisPlusConfig {

    /**
     * 实现分页配置
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());   //    注册乐观锁插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());    // 分页插件
        return interceptor;
    }
}

这部分代码来源:Page分页records有数据,但是total=0,解决办法

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值