一、问题

SpringBoot + Mybatis-Plus,使用分页查询,records有记录,total却始终为0。

二、原因

查看很多博客,说是因为没有加分页拦截器。加上了,total仍然为0,PaginationInnerInterceptor根本没进入。原因是自定义的sqlSessionFactory里没有添加Mybatis-Plus分页拦截器。

三、解决

在sqlSessionFactory里添加分页拦截器。

@Configurationpublic class MybatisPlusConfig {/** * 新增分页拦截器,并设置数据库类型为mysql */@Bean(name = "mybatisPlusInterceptor")public MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}


添加后,在PaginationInnerInterceptor.willDoQuery()方法里可以看到,total被赋值了。