mybatis-plus 3.0.5 分页返回total和pages为0 解决方案

    科技2022-07-11  141

    出现这种问题:检查几个地方: 1.MybatisPlusConfig类是否设置了分页插件:

    /** * 分页插件 * @return PaginationInterceptor */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }

    2.如果配置了还是不行:

    看配置类是否和启动类在同一包下,如果不是的话放到同一个包下

    3.这种方式可能还是不行:

    查看是否引入类其他分页插件,若有删掉

    4.还是不行的话: 最终解决在DataSourceConfig类的配置下配置分页插件:

    @Bean public SqlSessionFactory sessionFactory( @Qualifier("mainDataSource") final DataSource dynamicDataSource) throws Exception { MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dynamicDataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver. getResources("classpath*:" + "/mappers/**/**Mapper.xml")); // 分页插件 sqlSessionFactoryBean.setPlugins(new PaginationInterceptor[]{new PaginationInterceptor()}); return sqlSessionFactoryBean.getObject(); }

    分页执行成功:

    @Test public void test() { QueryWrapper<AdminUser> queryWrapper = new QueryWrapper<>(); queryWrapper.ge("username","admin"); Page<AdminUser> userPage = new Page<AdminUser>(1, 2); IPage<AdminUser> iPage = adminUserMapper.selectPage(userPage, queryWrapper); System.out.println("总页数:"+iPage.getPages()); System.out.println("总记录数:"+iPage.getTotal()); List<AdminUser> userList = iPage.getRecords(); userList.forEach(System.out::println); }

    Processed: 0.009, SQL: 8