Iterate:这属性遍历整个集合,并为List集合中的元素重复元素体的内容。
Iterate的属性:
prepend : 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
property: 类型为java.util.List的用于遍历的元素(必选)
open : 整个遍历内容体开始的字符串,用于定义括号(可选)
close : 整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction :每次遍历内容之间的字符串,用于定义AND或OR(可选)
<iterate>遍历类型为java.util.List的元素。
例子:
<iterate prepend=”AND” property=”userNameList” open=”(” close=”)” conjunction=”OR”>
username=#userNameList[]#
</iterate>
注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将对象标记为List,以防解析器简单地将List输出成String
如果传用的参数是自己定义的类,如:
<update id="sqlMap" parameterClass="example.ManagerModel">
UPDATE
TBL_COMPANY
SET
ADDRESS = #address#
WHERE
COMPANY_ID
IN
<iterate conjunction="," open="(" close=")" property="companyIds" >
#companyIds[]#
</iterate>
</update>
生成Sql语句: UPDATE TBL_COMPANY SET ADDRESS='address' WHERE COMPANY_ID IN ( 45, 50, 70)
ManagerModel 是自己定义的类,companyIds是其中的List