ibatis的iterate使用
Iterate:這屬性遍歷整個集合,并為 List 集合中的元素重復元素體的內容。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。
posted on 2010-02-02 15:49 飛熊 閱讀(27193) 評論(3) 編輯 收藏 所屬分類: Ibatis