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

相关推荐
云和恩墨1 小时前
OceanBase企业版会话级SQL跟踪实操:DBMS_MONITOR(类Oracle 10046事件)
数据库·sql·oracle·oceanbase
为什么不问问神奇的海螺呢丶1 小时前
oracle 数据库巡检 sql
数据库·sql·oracle
不穿格子的程序员8 小时前
从零开始写算法——链表篇4:删除链表的倒数第 N 个结点 + 两两交换链表中的节点
数据结构·算法·链表
dragoooon348 小时前
[hot100 NO.19~24]
数据结构·算法
聪明努力的积极向上8 小时前
【MYSQL】字符串拼接和参数化sql语句区别
数据库·sql·mysql
电子硬件笔记9 小时前
Python语言编程导论第七章 数据结构
开发语言·数据结构·python
Tony_yitao9 小时前
15.华为OD机考 - 执行任务赚积分
数据结构·算法·华为od·algorithm
C雨后彩虹10 小时前
任务总执行时长
java·数据结构·算法·华为·面试
柒.梧.10 小时前
数据结构:二叉排序树构建与遍历的解析与代码实现
java·开发语言·数据结构
zhuzewennamoamtf11 小时前
Linux内核platform抽象、数据结构、内核匹配机制
linux·运维·数据结构