0


Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper

根据 mybatis 根据多字段排序已经wrapper 根据多字段排序

首先根据咱们返回前端的数据列来规划好排序字段
如下:
在这里插入图片描述
这里的字段为返回VO的字段,要转换成数据库字段然后加入到排序中
示例,穿了 surname,cerRank 多字段,然后是倒序 false

在这里插入图片描述
首先创建好映射,如下代码,第一个List 为前端字段VO, 第二个List 为数据库字段。Util.handle 是将两个转换为map,然后就可以做映射啦。下面也写啦handle的方法。

Map<String,String>SORTCOLUMNMAP=Util.handle(Arrays.asList("surname","idcardNum","cerCode","cerType","cerRank","permissionTime","expirationTime"),Arrays.asList("surname","idcard_num","cer_code","cer_type","cer_rank","permission_time","expiration_time"));
/**
     * 将两个list转换为Map
     * @author ZMH
     * @return Map<String, String>
     */publicstaticMap<String,String>handle(List<String> list1,List<String> list2){Map<String,String> map =IntStream.range(0, list1.size()).collect(HashMap::new,(m, i)-> m.put(list1.get(i), list2.get(i)),(m, n)->{});return map;}

到这里之后我们就做一个转换的方法吧,然后这里测试如下,结果为surname,cer_rank 成功的改为了数据库字段,然后就可以加入到wrapper和sql 中啦。

/**
     * 获取转换后的排序字
     * @author ZMH
     * @date 31/7/2023 2:13 下午
     */publicstaticString getColumns (Map<String,String> sortColumnMap,String orderByColumns){List<String> orderByColumnList =Arrays.asList(orderByColumns.split(","));AtomicInteger i =newAtomicInteger();AtomicReference<String> columns =newAtomicReference<>("");
        orderByColumnList.forEach(
                column ->{
                    columns.set(columns.get()+sortColumnMap.get(column));if(i.getAndIncrement()!=(orderByColumnList.size()-1)){
                        columns.set(columns.get()+",");}});return columns.get();}

在这里插入图片描述

sql的话大家应该都知道怎么写,就不写sql的啦。写一个wrapper 的列子,如下:

queryCondition(queryWrapper,dto);//查询条件封装的方法都是一些判断if(StringUtils.isNotBlank(dto.getOrderByColumns())){String order = dto.getOrderByAsc()?"asc":"desc";//正序倒序 String columns =Util.getColumns(baseMapper.SORTCOLUMNMAP, dto.getOrderByColumns());//获取数据库字段
            queryWrapper.last(" order by ".concat(columns).concat(" ").concat(order));//最后拼接到wrapper 里面就可以来啦.}else{
            queryWrapper.orderByDesc(GzhExamCertificate::getCerCode);}
标签: mybatis sql 数据库

本文转载自: https://blog.csdn.net/zhang19age_/article/details/132022054
版权归原作者 只想早点下班 所有, 如有侵权,请联系我们删除。

“Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper”的评论:

还没有评论