使用格式
update test set test_data = 0 where test_id in
<foreach item="id" index="index" collection="list" open="(" separator="," close=")">
#{id}
</foreach>
foreach格式说明
- collection属性的参数类型可以使:List、数组、map集合
- 比如上面的例子中使用的是list,此时调用的方法形如 int updateTestData(List idList);
- 上面的collection中直接写的是list,所以可以不用和形参一致
- 如果在collection那里想写idList,那么方法就需要写成int updateTestData(@Param("idList")List idList);
- 比如上面的例子中使用的是list,此时调用的方法形如 int updateTestData(List idList);
- item: 表示在迭代过程中每一个元素的别名,可以随便起名,但是必须跟元素中的#{}里面的名称一样。
- index:表示在迭代过程中每次迭代到的位置(下标)
- open:前缀, sql语句中集合都必须用小括号()括起来
- close:后缀
- separator:分隔符,表示迭代时每个元素之间以什么分隔
注意
在foreach标签中的#{id}前后的空格如果是中文的就有sql语法错误