文档地址:分页插件
//Spring boot方式
@Configuration
@MapperScan("com.baomidou.cloud.service.*.mapper*")
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;
}
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
使用方式:IPage
分页查询示例代码:
@Test
void test() {
QueryWrapper<User> queryWrapper=new QueryWrapper<User>();
queryWrapper.ge("age", 25);// greaterEquals大于等于25
Page<User> page=new Page<>(1,2);//当前页是1,每页2条记录
//传入要进行的分页以及查询构造条件
IPage<User> userIPage = userMapper.selectPage(page, queryWrapper);
System.out.println("总页数"+userIPage.getPages());//打印总页数
System.out.println("总记录数数"+userIPage.getTotal());//总记录数
List<User> userList=userIPage.getRecords();//获取当前页的内容,返回的是一个List集合
userList.forEach(System.out::println);//遍历打印
}