Mybatis-plus:${ew.sqlselect}

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Mybatis-plus:${ew.sqlselect}

Xuan少   2022-06-28 我要评论

Mybatis-plus:${ew.sqlselect}

上篇文章是通过动态注入的方式去筛选查询条件,这次我们用mybatis-plus自带的${ew.sqlselect}来筛选。

也就是Constants源码里的这个属性

使用步骤

1.在xml文件里引入

    <!--表数据list-->
    <select id="tableList" resultType="java.util.LinkedHashMap">
        SELECT
            ${ew.sqlSelect} // 这里拼接select后面的语句
        FROM
            ${table_name} //如果是单表的话,这里可以写死
        ${ew.customSqlSegment}
    </select>

2.mapper文件

 //表数据list
 IPage<LinkedHashMap<String,Object>> tableList(@Param("table_name") String table_name,
                                                  Page page,
                                                  @Param(Constants.WRAPPER) QueryWrapper queryWrapper);

3.用法

     String responseField = "*"; //先把拿到的值设为*,如果responsefield.equals或者为null,就使用默认值,这样就可以查询所有条件
        if (nativeWebRequest.getParameter("response_field") != null && !nativeWebRequest.getParameter("response_field").equals("")) {
            responseField = nativeWebRequest.getParameter("response_field");
        }
        if (responseField.length() != 0 && !"".equals(responseField)) {
            queryWrapper.select(responseField);
        }

不加入responsefield字段,或者responsefield字段为空时,查询所有的值

加入responsefield字段后,查询对应的值

Mybatis-plus ${ew.sqlSegment}踩坑

使用${ew.sqlSegment} 如果是连表查询且查询条件是连表的字段则需在service层拼接查询条件时字段前指定别名

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们