foreach:包含以下属性:
- collection :传递过来的参数名字。
- item,变量名字,collection 中的一个对象。当传递的是map时,item代表value.
- index,索引名字,当迭代map时,为key值。
- open:开头的字符串。
- close:结尾的字符串。
- separator 每次循环的分隔符。
对于list
int insertList(@Param("liu") List<SysUser> users);
<insert id="insertList">
insert into sys_user(user_name,user_password,user_email,user_info)
values
<!-- liu 默认值为list item 自由定义指collection 中的对象,foreach中的数据为一次,多次使用separator处理-->
<foreach collection="liu" item="user" separator=",">
(
#{user.userName},#{user.userPassword},#{user.userEmail},#{user.userInfo}
)
</foreach>
</insert>
对于 map
int updateByMap(@Param("collection1") Map<String ,Object> map);
<!-- collection1 为传递过来的值,默认值为_parameter,item代表value,index 代表key-->
<update id="updateByMap">
update sys_user
set
<foreach collection="collection1" item="liu" index="yang" separator=",">
${yang} = #{liu}
</foreach>
where id = #{collection1.id}
</update>