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 属性来检查是否为空。

相关推荐
君鼎44 分钟前
排序算法——详解
数据结构·算法·排序算法
岁忧1 小时前
LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 上
数据库·sql·leetcode
卫青~护驾!1 小时前
c++数据结构8——二叉树的性质
数据结构·算法
怀旧,2 小时前
【C语言】C语言经典小游戏:贪吃蛇(上)
c语言·数据结构
小陈又菜2 小时前
SQL Transactions(事务)、隔离机制
数据库·sql·事务·隔离机制
. . . . .2 小时前
文件索引:数组、二叉树、二叉排序树、平衡树、红黑树、B树、B+树
数据结构·b树
半桔2 小时前
【烧脑算法】不定长滑动窗口:从动态调整到精准匹配以灵活特性实现高效破题
数据结构·c++·算法·leetcode·面试·职场和发展·排序算法
cy晔2 小时前
B树和B+树
数据结构·b树
南玖yy3 小时前
C++ 类模板三参数深度解析:从链表迭代器看类型推导与实例化(为什么迭代器类模版使用三参数?实例化又会是怎样?)
开发语言·数据结构·c++·人工智能·windows·科技·链表
二猛子3 小时前
排序算法-归并排序与快速排序
数据结构·c++·算法·排序算法