MyBatis的foreach標籤解析

foreach 元素的功能非常強大,它允許你指定一個集合,聲明可以在元素體內使用的集合項(item)和索引(index)變量。它也允許你指定開頭與結尾的字符串以及在迭代結果之間放置分隔符。這個元素是很智能的,因此它不會偶然地附加多餘的分隔符。

注意:你可以將任何可迭代對象(如 List、Set 等)、Map 對象或者數組對象傳遞給 foreach 作爲集合參數。當使用可迭代對象或者數組時,index 是當前迭代的次數,item 的值是本次迭代獲取的元素。當使用 Map 對象(或者 Map.Entry 對象的集合)時,index 是鍵,item 是值。

foreach屬性
屬性 描述
item

循環體中的具體循環對象。支持屬性的點路徑訪問,如item.age,item.info,item.sex。

具體說明:在list或數組中是其中的對象,在map中是value。該參數必選。

collection

做foreach標籤循環時的對象,作爲入參時,List對象默認用“list”代替作爲鍵,數組對象用“array”代替作爲鍵,而Map對象沒有默認的鍵。如果在入參時使用“@Param("keyName")”來設置鍵,設置keyName後,上述默認的“list”、“array”將會失效。該參數必選。

separator 元素之間的分隔符,例如在應用到in('1','2','3')這種sql的時候,separator=“,”會自動在元素中間用“,”隔開,避免手動輸入逗號導致的sql出錯。該參數可選。
open foreach標籤代碼開始的符號,一般和close連用,常用在in(),value()中,該參數可選。
close foreach標籤代碼結束的符號,一般和open連用,常用在in(),value()中,該參數可選。
index 在list和數組中,index是下標,在map中,index是key,item是value。該參數可選。

 

Dao層代碼:

xml代碼

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