MyBatis# foreach标签嵌套使用 if标签时,对象取值问题

Posted LRcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis# foreach标签嵌套使用 if标签时,对象取值问题相关的知识,希望对你有一定的参考价值。

背景:在 MyBatis 中,使用 foreach 进行批量插入时,需要根据传入的参数值,动态的决定插入的值

数据格式


    "dataList": [
        
            "num": 1, 
            "value": 2
        ,
        
            "num": 2, 
            "value": 2
        
    ]

可以看到,在进行 foreach循环时,每次获取到的 item 是一个 json对象(实体类同理),那么如何在 if标签 的 test中获取值呢?

  • 直接通过 对象.属性 的方式

不需要再使用 # 或者 $的形式,直接 对象.属性

代码示例

<foreach collection="dataList" item="item" index="index">
	<if test="item.num == 1">  <!-- 直接 对象.属性 的方式 -->
    	SQL语句
    </if>
</foreach>

以上是关于MyBatis# foreach标签嵌套使用 if标签时,对象取值问题的主要内容,如果未能解决你的问题,请参考以下文章

Java--MyBatis动态SQL;<if>,<where>,<foreach>标签

mybatis <foreach>标签问题

Java51Mybatis:两个xml文件的标签,动态sql的if/choose/where/set/foreach标签

mybatis foreach 问题

在 MyBatis 3 中为 HashMap 参数嵌套 foreach

mybatis foreach标签