0

我刚开始使用 MyBatis,我似乎不了解动态 foreach 功能。假设我的 Mapper.xml 中有以下选择查询。我有一个要选择的用户名列表。

  <select id="selectUsers" resultMap="User">
  SELECT *
  FROM users
  WHERE user_name in
  <foreach item="item" index="index" collection="list"
      open="(" separator="," close=")">
        #{item}
  </foreach>
</select>

在我的 Mapper.java 中,我有以下方法。

List<User> getUsers(@Param("listOfNames") List<String> listOfNames);

有人可以向我解释我应该如何将我的 Mapper.xml 中的 foreach 语句与我的集合正确映射。我现在似乎明白了什么是 item="item" index="index" collection="list" open="(" separator=","close=")"。集合属性是某种实际的集合类型,还是与我的 @Param 注释匹配的名称?究竟什么是索引,为什么需要它?另外,我不太了解 open、separator 和 close 属性。希望我的问题是新的,以前没有得到回答。先感谢您 :)

4

0 回答 0