我刚开始使用 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 属性。希望我的问题是新的,以前没有得到回答。先感谢您 :)