mybatisplus多条件分页以及排序的几种方式区别
第一种:
queryWrapper.orderByAsc("sort_code");
这种方式仅支持单个固定字段,固定排序方式排序,而且order by 在分页计算total就已经加上了,效率多少是有些影响的 (select count(*) from table order by )
第二种
通过baomidou.page 自带的 ascs[],desc[]数组,page.setAscs(),page.setDescs() 注入,就只会在查询是进行 order by,计算分页total不会加上order by,效率是会有提升
记忆第二种,支持多字段自定义排序方式,具体代码如下
//基本的非空判断
if(page.ascs()==null || page.ascs().length==0){
}else{
//字符串数组转化成list集合
page.setAscs(new ArrayList<>(Arrays.asList(page.ascs())));
}
if(page.descs()==null || page.descs().length==0){
}else{
page.setDescs(new ArrayList<>(Arrays.asList(page.descs())));
}
//mybatis自带的分页
IPage iPage = ixxxxService.page(page);
postman传值
{
"current":1,
"size":100,
"ascs":["sort_code"],
"desc":["id"]
}
不恋尘世浮华,不写红尘纷扰