开发者

mybatis-plus:xml拼接sql方式

开发者 https://www.devze.com 2024-08-20 10:37 出处:网络 作者: 玉成226
目录myBATis-plus:XML拼接sqlforeach操作mapforeach操作Listforeach操作Stringmybatis-plus动态拼接sql语句解释用途例子作用总结www.devze.commybatis-plus:xml拼接sql
目录
  • myBATis-plus:XML拼接sql
    • foreach操作map
    • foreach操作List
    • foreach操作String
  • mybatis-plus动态拼接sql语句
    • 解释
    • 用途
    • 例子
    • 作用
  • 总结www.devze.com

    mybatis-plus:xml拼接sql

    foreach操作map

           <if test = "vo.map!= null and vo.mhttp://www.devze.comap.size() > 0">
                <foreach item="item" index="key" collection="vo.map">
                    <if test = "key != null and key != 'assetType'">
                    	// jsonParam为json类型字段
                        and JSON_EXTRACT(jsonParam, '$.${key}') = #{item}
                    </if>
                    <if test = "key != null and key == 'assetType'">
                        and ${key} = #{item}
                    </if>
                </foreach>
            </if>

    foreach操作List

           <if test="assetCodes != nu编程ll and list.size > 0">
                and field in
                <foreach collection="list" item="e" index="index" open="(" close=")" separator=",">
                    #{e}
                </foreach>
            </if>

    foreach操作String

    <if test="vo.departmentCodeList != null and vo.departmentCodeList != ''">
    	AND r.department_code in
    	<foreach item="departmentCode" collection="vo.departmentCodeList.split(',')" open="(" separator="," close=")">
        	#{departmentCode}
        </foreach>
    </if>

    mybatis-plus动态拼接sql语句

    解释

    ${ew.customSqlSegment} 是 MyBatis-Plus 中用于在 SQL 语句中插入自定义 SQL 片段的占位符。

    ew 是指 Wrapper 对象(通常是 QueryWrapperUpdateWrapper),而 customSqlSegment 是这个对象中的自定义 SQL 片段。

    用途

    这个占位符通常用于动态拼接 SQL 语句

    允许在特定的 SQL 语句部分插入自定义的条件、过滤器或者其他 SQL 片段。

    例子

    QueryWrapper<MsCustomer> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("status", "active");
    
    // 动态添加一个自定义的 SQL 片段
    queryWrapper.apply("custom_column > {0}", someValue);
    
    List<MsCustomer> customers = msCustomerMapper.selectList(queryWrapper);

    在 Mapper XMLpython 文件中,可以像这样使用 ${ew.customSqlSegment}

    <select id="selectCustomers" resultType="MsCustomer">
        SELECT * FROM ms_customer ${ew.customSqlSegment}
    </select>

    作用

    customSqlSegment 允许你通过编程方式动态生成 SQL 语句中的某些部分,从而实现更灵活的查询和操作。

    例如:

    如果在代码中调用了 apply() 方法或其他添加条件的方法,这些条件会被自动拼接到 ${ew.customSqlSegmjsent} 处,从而生成最终的 SQL 语句。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号