mybatis-plus:xml拼接sql方式

 更新时间:2024年08月19日 16:38:26   作者:玉成226  
这篇文章主要介绍了mybatis-plus:xml拼接sql方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mybatis-plus:xml拼接sql

foreach操作map

       <if test = "vo.map!= null and vo.map.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 != null 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 XML 文件中,可以像这样使用 ${ew.customSqlSegment}

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

作用

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

例如:

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

总结

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

相关文章

  • Java链表的天然递归结构性质图文与实例分析

    Java链表的天然递归结构性质图文与实例分析

    这篇文章主要介绍了Java链表的天然递归结构性质,结合图文与实例形式分析了java链表中递归操作的原理、实现技巧与相关注意事项,需要的朋友可以参考下
    2020-03-03
  • Java中的HashMap内存泄漏问题详解

    Java中的HashMap内存泄漏问题详解

    这篇文章主要介绍了Java中的HashMap内存泄漏问题详解,WeakHashMap中的key是弱引用,如果再使用之后没有及时remove掉这个key,那么当GC时key就可能会被回收,导致key对应的value对象占用的内存无法回收进而导致内存泄漏,需要的朋友可以参考下
    2023-09-09
  • Spring boot CommandLineRunner启动任务传参实例详解

    Spring boot CommandLineRunner启动任务传参实例详解

    在使用SpringBoot构建项目时,我们通常有一些预先数据的加载,下面这篇文章主要给大家介绍了关于Spring boot CommandLineRunner启动任务传参的相关资料,需要的朋友可以参考下
    2022-06-06
  • springboot中使用redis的方法代码详解

    springboot中使用redis的方法代码详解

    &#8203;redis 作为一个高性能的内存数据库,如果不会用就太落伍了,之前在 node.js 中用过 redis,本篇记录如何将 redis 集成到 spring boot 中。感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • springboot集成Feign的实现示例

    springboot集成Feign的实现示例

    Feign是声明式HTTP客户端,用于简化微服务之间的REST调用,本文就来介绍一下springboot集成Feign的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • java 线程池如何执行策略又拒绝哪些策略

    java 线程池如何执行策略又拒绝哪些策略

    这篇文章主要介绍了java 线程池如何执行策略又拒绝哪些策略,文章通过线程池的执行方法 execute() 展开全篇内容,需要的小伙伴可以参考一下
    2022-05-05
  • 深入了解Spring控制反转IOC原理

    深入了解Spring控制反转IOC原理

    IOC-Inversion of Control,即控制反转。它不是什么技术,而是一种设计思想。这篇文章将为大家介绍一下Spring控制反转IOC的原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Spring如何基于注解显式实现自动装配

    Spring如何基于注解显式实现自动装配

    这篇文章主要介绍了Spring如何基于注解显式实现自动装配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • springboot如何使用yml文件方式配置shardingsphere

    springboot如何使用yml文件方式配置shardingsphere

    这篇文章主要介绍了springboot如何使用yml文件方式配置shardingsphere问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java内部类的实现原理与可能的内存泄漏说明

    Java内部类的实现原理与可能的内存泄漏说明

    这篇文章主要介绍了Java内部类的实现原理与可能的内存泄漏说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10

最新评论