mybaits 按照字段排序问题

mybaits 按照字段排序问题


传一个map,key表示字段名, value (true 表示正排序,false 表示反排序):

基础代码

LinkedHashMap<String, Boolean> map = new LinkedHashMap<>();
map.put("user_id",true);
map.put("user_name",false);

1

BaseDao:
List<T> listByPage(@Param("model") T model,@Param("page") PageBean page,
@Param("map") LinkedHashMap<String,Boolean> map);

xml 里面如下:
<select id="listByPage" resultMap="BaseResultMap">

        select
        <include refid="Base_Column_List"/>

        from owner_information
        <where>
            <if test="model.userId != null and model.userId != ''">
                and   user_id =  #{model.userId}
            </if>
            <if test="model.userName != null and model.userName != ''">
                and user_name=   #{model.userName}
            </if>
        </where>


           <foreach collection="map" index="key"  item="value" open=" order by " close=" "    separator="," >
                    <if test="value==true">
                        ${key}  desc
                    </if>
                      <if test="value==false">
                        ${key}  asc
                     </if>

            </foreach>


        <if test="page != null">
            limit #{page.start}, #{page.pageSize}
        </if>

    </select>

sql

select * from owner_information order by user_id desc , phone_num asc limit ?, ? 


2

 @Override
    public PageBean<T> page(T model, int currentPage, int pageSize, LinkedHashMap<String, Sorted> orders) {
        int count = getDao().count(model);
        PageBean page = new PageBean(currentPage, pageSize, count);
        StringBuilder sorted = new StringBuilder();

        orders.entrySet().stream().forEach(e -> {
            sorted.append(e.getKey());
            sorted.append(" ");
            sorted.append(e.getValue() == Sorted.DESC ? "desc" : "asc");
            sorted.append(",");
        });

        if (sorted.indexOf(",") != -1) {
            sorted.deleteCharAt(sorted.lastIndexOf(","));
        }
        List<T> list = getDao().listByPage(model, page, sorted.toString());
        page.setRecordList(list);
        return page;
    }
dao

 List<T> listByPage(@Param("model") T model, @Param("page") PageBean page, @Param("sorted") String sorted);
xml

<select id="listByPage" resultMap="BaseResultMap">

        select
        <include refid="Base_Column_List"/>
        from t_business

        <where>

        </where>

        <if test="sorted != null and sorted != '' ">
            order by ${sorted}
        </if>


        <if test="page != null">
            limit #{page.start}, #{page.pageSize}
        </if>


    </select>
                                                                2018.8.6 -9.20 北京 雨
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值