1. 分页插件原代码(MybatisplusConfiguration.java)
/**
* 分页插件,自动识别数据库类型
*/
public PaginationInnerInterceptor paginationInnerInterceptor() {
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInnerInterceptor.setMaxLimit(-1L);
// 分页合理化
paginationInnerInterceptor.setOverflow(true);
return paginationInnerInterceptor;
}
2. 创建一个类继承PaginationInnerInterceptor,然后重写handlerOverflow方法
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
public class CustomPaginationInterceptor extends PaginationInnerInterceptor {
@Override
protected void handlerOverflow(IPage<?> page) {
//原来的逻辑是超出范围返回第一页
//page.setCurrent(1L);
//修改成返回最后一页
page.setCurrent(page.getPages());
}
}
3. 使用我们自定义的PaginationInnerInterceptor
/**
* 分页插件,自动识别数据库类型
*/
public PaginationInnerInterceptor paginationInnerInterceptor() {
//分页超出范围返回最后一条
CustomPaginationInterceptor paginationInnerInterceptor = new CustomPaginationInterceptor();
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInnerInterceptor.setMaxLimit(-1L);
// 分页合理化
paginationInnerInterceptor.setOverflow(true);
return paginationInnerInterceptor;
}