Iterate 的屬性:
prepend - 可被覆蓋的 SQL 語句組成部分,添加在語句的前面(可選)
property - 類型爲 java.util.List 的用於遍歷的元素(必選)
open - 整個遍歷內容體開始的字符串,用於定義括號(可選)
close -整個遍歷內容體結束的字符串,用於定義括號(可選)
conjunction - 每次遍歷內容之間的字符串,用於定義 AND 或 OR(可選)
遍歷類型爲 java.util.List的元素。
例子:
<iterate prepend=”AND” property=”userNameList”
open=”(” close=”)” conjunction=”OR”>
username=#userNameList[]#
</iterate>
ibatis中如何配置in語句,需要迭代,不能直接用string的寫法<select id="sql_test" parameterclass="myPramBean" resultclass="myResult">
select *from tablewhere name in
<iterate property="ids" conjunction="," close=")" open="(" />
#value[]#
</iterate>
and code=#code#
</select>
myPramBean
{
private String code;
private List ids;
...
}
eg:<delete id="member.batchDelete" parameterClass="java.util.List">
DELETE FROM member where id IN
<iterate conjunction="," open="(" close=")" >
#value[]#
</iterate>
</delete>
注意:使用<iterate>時,在List元素名後面包括方括號[]非常重要,方括號[]將對象標記爲List,以防解析器簡單地將List輸出成String。