mybatis foreach

在mybatis的mapper配置文件中,可以利用<foreach>標籤實現sql條件的循環,可完成類似批量的sql

mybatis接受的參數分爲:(1)基本類型(2)對象(3)List(4)數組(5)Map

 

無論傳哪種參數給mybatis,他都會將參數放在一個Map中:

如果傳入基本類型:變量名作爲key,變量值作爲value    此時生成的map只有一個元素。

如果傳入對象:        對象的屬性名作爲key,屬性值作爲value,

如果傳入List:         "list"作爲key,這個List是value  (這類參數可以迭代,利用<foreach>標籤實現循環)

如果傳入數組:       "array"作爲key,數組作爲value(同上)

如果傳入Map:        鍵值不變。

 

<foreach>標籤的用法:

六個參數:

collection:要循環的集合

index:循環索引(不知道啥用。。)

item:集合中的一個元素(item和collection,按foreach循環理解)

open:以什麼開始

close:以什麼結束

separator:循環內容之間以什麼分隔

例如:

<update id="pubS" parameterType="Map">   UPDATE BMC_SUBPLATE   SET PLSTATUS = '02'   WHERE   <foreach collection="ids" item="plid" open="" close="" separator="OR">    PLID = #{plid}   </foreach>  </update>

collection的值其實就是mybatis把參數轉化成Map以後,這個Map的key,但是這個key對應的value必須是一個集合,  可以是數組,也可以是List

生成的動態sql:   

Executing: UPDATE BMC_SUBPLATE SET PLSTATUS = '02' WHERE PLID = ? OR PLID = ?                                

Parameters: 20121116144947537692(String), 20121116141301414855(String)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章