现在的位置: 首页 > 综合 > 正文

iBatis iterate标签

2018年06月10日 ⁄ 综合 ⁄ 共 937字 ⁄ 字号 评论关闭

引用:http://xueliang1yi.blog.163.com/blog/static/11455701620104895751115/

 

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
这时要注意红色字体的参数写法,要和类中定义的变量名一致.

抱歉!评论已关闭.