目录
  • Mybatis-plus:${ew.sqlselect}
    • 使用步骤
  • Mybatis-plus ${ew.sqlSegment}踩坑

    Mybatis-plus:${ew.sqlselect}

    上篇文章是通过动态注入的方式去筛选查询条件,这次我们用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字段为空时,查询所有的值

    Mybatis-plus:${ew.sqlselect}用法说明

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

    Mybatis-plus:${ew.sqlselect}用法说明

    Mybatis-plus:${ew.sqlselect}用法说明

    Mybatis-plus ${ew.sqlSegment}踩坑

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

    Mybatis-plus:${ew.sqlselect}用法说明

    Mybatis-plus:${ew.sqlselect}用法说明

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

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。