Iterate:这属性遍历整个集合,并为 List 集合中的元素重复元素体的内容。
Iterate 的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 类型为 java.util.List 的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction - 每次遍历内容之间的字符串,用于定义 AND 或 OR(可选)
遍历类型为 java.util.List的元素。
ibatis中如何配置in语句,需要迭代,不能直接用string的写法
<select id="sql_test" parameterclass="myPramBean" resultclass="myResult"> select *from tablewhere name in <iterate property="ids" conjunction="," close=")" open="(" /> #ids[]# </iterate> and code=#code# </select>
bean的例子
myPramBean { private String code; private List ids; ... }
注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将
对象标记为List,以防解析器简单地将List输出成String
项目中的一个例子:
<select id="getUsersSimpleMsg" parameterClass="map" resultClass="com.test.core.vo.UserVO"> select id, code, name, email, mobile from test_user_user where status=0 and id in <iterate property="userIdList" close=")" open="(" conjunction=","> #userIdList[]# </iterate> </select>