分页插件
实现:
1.配置类中注册MyBatisPlus的核心插件,添加插件:
基于拦截器
@Configuration
public class MybatisConfig{
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//1.初始化核心插件
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//2.添加分更插件
PaginationInnerInterceptor pageInterceptor = new
PaginationInnerInterceptor(DbType.MysQL);
pageInterceptor.setMaxLimit(1000L);
//设置分页上限
interceptor.addInnerInterceptor(pageInterceptor);
return interceptor;
}
}
使用IService的分页api
@Testvoid testPageQuery(){
//1.查询
int pageNo =1,pagesize =5;
//1.1.分页参数
Page<User>page=Page.of(pageNo,pagesize);
//1.2.排序参数,通过0rderItem来指定
page.addOrder(new OrderItem("balance",false));
//1.3.分页查询
Page<User>p=userservice.page(page);
//2.总条数
System.out.println("total ="+ p.getTotal());
//3.总页数
System.out.println("pages ="+ p.getPages());
//4.分页数据
List<User>records =p.getRecords();
records.forEach(System.out::println);
}
通用的分页实体:
分页参数在多处使用,建议额外额外一个实体:
@ApiModel(descriptopm = "分页查询实体")
public classPageQuery{
@ApiModelProperty("页码")
private Integer pageNo;
@ApiModelProperty("页码")
private Integer pagesize;
@ApiModelproperty("排序字段")
private string sortBy;
@ApiModelproperty("是否升序")
private Boolean isAsc;
}
public class UserQuery extends PageQuery
转换类型的代码,可以封装,然后对应功能考虑