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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM