Iterate:这属性遍历整个集合,并为 List 集合中的元素重复元素体的内容。
Iterate的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 类型为 java.util.List 的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction- 每次遍历内容之间的字符串,用于定义 AND 或OR(可选)
遍历类型为java.util.List的元素。
public intdeletePerson(Map<String, Object> map){
List<Person> personList=newArrayList<Person>();
Person p1=new Person(11);
person p2=new Person(12);
personList.add(p1);
personList.add(p2);
map.put("personList", personList);
map.put("sex",'man');
returngetSqlMapClientTemplate().delete("person.deletePerson", map);
} public class Person{
public Person(intage){
this.age=age;
}
private int age; ··········
}<!--
删除性别为man,年龄为 11,12 的Person记录,删除相应的person记录-->
<delete id="deletePerson"parameterClass="map">
deletefrom 表名where sex=#sex#
<iterate prepend="and" property="personList"open="("
close=")"conjunction="or">
age=$personList[].age$
</iterate>
</delete> 输出sql如下:
delete from 表名 where sex='man' and (age =11 or age=12)
也可以写为:<delete id="deletePerson"parameterClass="map">
deletefrom 表名where sex=#sex# and age in
<iterate property="personList"open="("
close=")"conjunction=",">
$personList[].age$
</iterate>
</delete>
ibatis iterate使用
最新推荐文章于 2019-06-21 16:59:01 发布