话不说多直接上代码和例子:

版本:

 <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
  </dependency>

代码:

  protected IPage<ErpSysCodeType> findByParam(Page<ErpSysCodeType> page, LambdaQueryWrapper<ErpSysCodeType> queryParamMap) {
        return erpSysCodeMapper.selectPage(page,queryParamMap);
    }

配置:

@EnableTransactionManagement
@Configuration
@MapperScan("com.eric.erp.repo.mappers")
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

给分页代码:

第一页

first:0 pageSize:10

第二页

first:10 pageSize:10

 Page<T> page =  new Page<>(first,pageSize);
 Pair<List<T>, Long> result = this.basicService.getResultList(page,getQueryParam());

效果: 第一页

MyBatis-Plus 分页bug?

第二页:

当前给的是10,结果在查询参数里是如下图

MyBatis-Plus 分页bug?

Comment From: miemieYaho

10 就是第10页