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

相关推荐
thusloop2 小时前
380. O(1) 时间插入、删除和获取随机元素
数据结构·算法·leetcode
天上掉下来个程小白2 小时前
MybatisPlus-06.核心功能-自定义SQL
java·spring boot·后端·sql·微服务·mybatisplus
future14123 小时前
游戏开发日记
数据结构·学习·c#
wjcurry4 小时前
完全和零一背包
数据结构·算法·leetcode
qq_433554545 小时前
C++ 选择排序、冒泡排序、插入排序
数据结构
python_tty5 小时前
排序算法(一):冒泡排序
数据结构·算法·排序算法
学不动CV了6 小时前
ARM单片机OTA解析(二)
arm开发·数据结构·stm32·单片机·嵌入式硬件
kk在加油6 小时前
Redis基础数据结构
数据结构·数据库·redis
IT永勇7 小时前
数据结构-栈
c语言·数据结构·嵌入式开发
Aczone287 小时前
嵌入式 数据结构学习 (六) 树、哈希表与内核链表
数据结构·学习·算法