之前在网上看了好些关于<foreach>标签的使用,但是好些要么不详细,要么有错误,现将相关的使用方法总结一下,不足的地方还请指出。
<delete id="deleteServerUser">
delete from server_user where user_no in
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
collection :用法的不同就在于此参数,总的来说可以分为两种:
1.当传入的为单个参数,类型为数组时,collection="array",例如Dao层:public Integer deleteServerUser(Integer[] userNos);;当传入的为单个参数,类型为List集合时,collection="list",例如Dao层:public Integer deleteServerUser(List userNos);。
2.当传入参数为Map时,collection的值等于Map里的键值key;当在Dao层以@Param注解方式传入参数时,collection的值等于传入时指定的值,例如:public Integer deleteServerUser(@Param("users")Integer[] userNos); 此时collection="users"。
item : 表示在迭代过程中每一个元素的别名
index :表示在迭代过程中每次迭代到的位置(下标)
open :前缀
close :后缀
separator :分隔符,表示迭代时每个元素之间以什么分隔