1. 程式人生 > >ibatis實現Iterate的使用

ibatis實現Iterate的使用

select pen 集合 href 獲取 符號 map let lose

ibatis實現Iterate的使用

<iterate

property="" /*可選, 從傳入的參數集合中使用屬性名去獲取值, 這個必須是一個List類型, 否則會出現OutofRangeException, 通常是參數使用java.util.Map時才使用, 如果傳入的參數本身是一個java.util.List, 不能只用這個屬性. /

conjunction="" /*可選, iterate可以看作是一個循環, 這個屬性指定每一次循環結束後添加的符號, 比如使每次循環是OR的, 則設置這個屬性為OR*/

open="" /*可選, 循環的開始符號*/

close="" /*可選, 循環的結束符號*/

prepend="" /*可選, 加在open指定的符號之前的符號*/

>

1.查詢

<!-- Iterate的使用,根據多個匹配條件查詢,類似in(a,b,c)-->

<select id="selectByIterate" parameterClass="java.util.List" resultClass="user">

SELECT * FROM USERS WHERE USER_ID IN

<iterate conjunction="," open="(" close=")">

#ids[]#

</iterate>

</select>

註意:不要property屬性,否則報錯。String index out of range: -1

2. 但是,若參數有多個傳入的一個是List,另一個不是, parameterClass為map時,需要property屬性區分要遍歷的 集合。

2.刪除

<!-- 批量刪除對象的時候,iterate不要property屬性 -->

<delete id="delStudybook" parameterClass="java.util.List">

delete FROM STUDYBOOK WHERE ID IN

<iterate conjunction="," open="(" close=")">

#bookList[]#

</iterate>

</delete>

http://hongzhguan.iteye.com/blog/1222353

ibatis實現Iterate的使用