mybatis foreach循环对象中的list

MyBatis 中的 <foreach> 元素可以用于在 SQL 语句中循环处理集合元素,方便地生成 IN 语句,以及一些其它的场景。

当循环的集合元素是一个 List 类型的对象时,可以通过在 <foreach> 元素中使用 collection 属性来指定集合属性名,例如:

<update id="updateUsers" parameterType="map">
  update users
    <foreach collection="list" item="item" separator=",">
      ${item.name} = #{item.value}
    </foreach>
  </set>
  where id = #{id}
</update>

其中,collection 属性的值为传入的参数 Map 对象中的 List 类型属性名。在循环体中,使用 item 属性名来指定当前遍历的元素,然后就可以通过 ${item.xxx}#{item.xxx} 的方式来访问该元素中的属性值了。

需要注意的是,当循环集合元素是一个对象时,需要在对象中定义相应的属性和 getter 方法,才能在循环体中访问该属性。

总的来说,<foreach> 元素的使用非常灵活,可以支持各种类型的集合元素,只需要设置合适的属性和循环体内容即可。

  •