Mybatis-PageHelper实现动态排序
// PageHelper的排序参数格式:price asc; price desc;
if (StringUtils.isNotBlank(orderBy)){
if (Const.ProductListOrderBy.PRICE_ASC_DESC.contains(orderBy)){
String[] orderByArray = orderBy.split("_");
PageHelper.orderBy(orderByArray[0] + " " + orderByArray[1]);
}
}
传入的参数orderBy形式:price_asc或price_desc,传入到PageHelper中为price asc。
可以进行封装成枚举类或内部接口
public interface ProductListOrderBy{
//Set查询效率为O(1), List为O(n)
Set<String> PRICE_ASC_DESC = Sets.newHashSet("price_desc","price_asc");
}
专门来写一个类来进行降序和升序的存储这两个参数desc,asc的设置,以此来动态实现排序。