array和list在sql中的foreach写法

在MyBatis中,`<foreach>`标签用于处理集合或数组类型的参数,以便在SQL语句中动态生成`IN`子句或其他需要遍历集合的场景。以下是`array`和`list`在SQL中的`<foreach>`写法总结。

sql 复制代码
<if test="taskIds != null and taskIds.length > 0">
                            and `task_id` IN
                            <foreach item="taskId" collection="taskIds" open="(" separator="," close=")">
                                #{taskId}
                            </foreach>
                        </if>

需要注意就两点

1.collection

数组:collection="array"

列表:collection="list"

也可以写成collection="taskIds",

collection="taskIds" :表示传入的参数是一个数组或集合,名为taskIds。MyBatis会遍历这个集合中的每个元素。

2.if判断

list才可以用isEmpty(),array不能使用isEmpty(),

list一般用:<if test="taskIds != null and taskIds.length > 0">

数组一般用:<if test="taskIds != null and !taskIds.isEmpty()">

注意事项

  1. collection 属性的值

    • 如果传入的是数组,collection 应该是 "array"

    • 如果传入的是列表,collection 应该是 "list"

  2. isEmpty() 的使用

    • 只有在传入的参数是 List 或其他集合类型时,才能使用 isEmpty() 方法。

    • 如果传入的是数组,必须使用 length 属性来检查是否为空。

相关推荐
叼烟扛炮21 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
MegaDataFlowers1 天前
206.反转链表
数据结构·链表
CN-Dust1 天前
【C++】while语句例题专题
数据结构·c++·算法
xieliyu.1 天前
Java手搓数据结构:从零模拟实现无头双向非循环链表
java·数据结构·链表
俺不要写代码1 天前
数据库:DQL
数据库·sql·mysql
如何原谅奋力过但无声1 天前
【灵神高频面试题合集01-03】相向双指针、滑动窗口
数据结构·python·算法·leetcode
jieyucx1 天前
Go 数据结构入门:线性表、顺序表、链表
数据结构·链表·golang
阿维的博客日记1 天前
zset为什么要用到skiplist+Dict的数据结构
数据结构·skiplist
编程之升级打怪1 天前
KMP查询算法的匹配串的前缀后缀相同的最大长度
数据结构
uElY ITER1 天前
MySQL 中如何进行 SQL 调优
android·sql·mysql