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

相关推荐
镜舟科技4 分钟前
如何高效使用 Text to SQL 提升数据分析效率?四个关键应用场景解析
数据库·sql·数据分析
PHASELESS41131 分钟前
Java二叉树深度解析:结构、算法与应用实践指南
java·开发语言·数据结构·算法
祁同伟.35 分钟前
【数据结构 · 初阶】- 带头双向循环链表
数据结构·链表
King.62436 分钟前
数据服务化 VS 数据中台:战略演进中的价值重构
大数据·数据库·sql·oracle·重构
weisian1511 小时前
中间件--ClickHouse-6--SQL基础(类似Mysql,存在差异)
sql·clickhouse·中间件
学习2年半2 小时前
回溯算法:List 还是 ArrayList?一个深拷贝引发的思考
数据结构·算法·list
Gvemis⁹2 小时前
Spark-SQL
大数据·sql·spark
烁3472 小时前
每日一题(小白)暴力娱乐篇30
java·数据结构·算法·娱乐
Y.O.U..5 小时前
力扣HOT100——无重复字符的最长子字符串
数据结构·c++·算法·leetcode
神奇的黄豆8 小时前
spark-sql学习内容总结
大数据·sql·spark