Iterate:这属性遍历整个集合,并为 List 集合中的元素重复元素体的内容。
Iterate 的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 类型为 java.util.List 的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction - 每次遍历内容之间的字符串,用于定义 AND 或 OR(可选)
遍历类型为 java.util.List的元素。
ibatis中配置in语句:
<select id="selectUserInfoByNames" parameterClass="java.util.Map" resultclass="java.util.List">
select * from users where name in
<iterate property="nameList" conjunction="," close=")" open="(" />
#nameList[]#
</iterate>
and age < #age#
</select>
生成的SQL形如:
select * from users where name in ('admin','system','manager') and age < 18;
ibatis中配置or语句:
<select id="selectUserInfoByNames" parameterClass="java.util.Map" resultClass="java.util.List">
select * from users where age < #age#
<iterate prepend="AND" property="UserNameList"
open="(" close=")" conjunction="OR">
username=#UserNameList[]#
</iterate>
</select>
生成的SQL形如:
select * from users where age < 20
and username='admin' or username='scott' or username='root';
---------------------
作者:luckystar2008
来源:CSDN
原文:https://blog.csdn.net/qincidong/article/details/7520163
版权声明:本文为博主原创文章,转载请附上博文链接!