foreach能迭代一个集合,常见的场景是构造sql的in语句。
foreach元素的属性主要有 item,index,collection,open,separator,close。
- item 表示集合中每一个元素进行迭代时的别名;
- index 指定一个名字,用于表示在迭代过程中,每次迭代到的位置;
- open 表示该语句以什么开始;
- separator 表示在每次进行迭代之间以什么符号作为分隔符;
- close 表示以什么结束。
使用foreach的两种写法
在XML文件中使用foreach的写法
<select id="test" parameterType="java.util.List" resultType="Test">
select * from t_test where id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
使用java注解的写法
//这种写法有效
@Select("<script>" +
"SELECT * FROM t_test WHERE id IN " +
"<foreach collection='list' index='index' item='item' open='(' separator=',' close=')'>" +
"#{item}" +
"</foreach>" +
"</script>")
@Results(value = { @Result(column = "id", property = "id") })
public List<String> getTestList(@Param("list") List<String> list);
转自 https://chentaoqian.com/?p=81
本文详细介绍了MyBatis中foreach元素的应用方法,包括如何构造SQL的in语句,并展示了两种不同的写法:XML文件中的使用方式及Java注解形式。通过具体示例讲解了item、index、collection等属性的作用。

4373

被折叠的 条评论
为什么被折叠?



