mybatis 中 foreach collection的常用用法

2024-02-20 19:11:10 浏览数 (2)

MyBatis中的foreach标签用于在SQL语句中遍历集合,并将集合中的元素逐个应用到SQL语句中。以下是foreach标签的常见用法示例:

1.遍历List或数组:

代码语言:javascript复制
<select id="findUsersByIds" resultType="User">
  SELECT * FROM users
  WHERE id IN
  <foreach item="id" collection="ids" open="(" separator="," close=")">
    #{id}
  </foreach>
</select>

上述示例中,ids为一个List或数组,通过foreach标签将其中的元素逐个应用到SQL语句中的IN子句中。

2.遍历Map:

代码语言:javascript复制
<select id="findUsersByMap" resultType="User">
  SELECT * FROM users
  WHERE
  <foreach item="entry" collection="params" separator="AND">
    ${entry.key} = #{entry.value}
  </foreach>
</select>

上述示例中,params为一个Map,通过foreach标签将其中的键值对逐个应用到SQL语句中的WHERE条件中。

3.使用index属性:

代码语言:javascript复制
<select id="batchUpdateUsers" parameterType="List">
  <foreach item="user" index="index" collection="users" open="begin;" separator=";" close="end;">
    UPDATE users SET name = #{user.name}, age = #{user.age} WHERE id = #{user.id};
  </foreach>
</select>

0 人点赞