mybatis list<map>作為參數(shù) foreach循環(huán)

dao層參數(shù)為L(zhǎng)ist<類型> ,類型也可以是Map類型,mapper配置文件形式如下


這樣寫(xiě)就ok啦!注意:collection必須為list因?yàn)閙ybatis官方文檔中寫(xiě)道:
( 你可以傳遞一個(gè) List 實(shí)例或者數(shù)組作為參數(shù)對(duì)象傳給 MyBatis。當(dāng)你這么做的時(shí) 候,MyBatis 會(huì)自動(dòng)將它包裝在一個(gè) Map 中,用名稱在作為鍵。List 實(shí)例將會(huì)以“l(fā)ist” 作為鍵,而數(shù)組實(shí)例將會(huì)以“array”作為鍵。)


以下內(nèi)容添加日期2019-5-15

為什么這篇文章寫(xiě)這么爛還有這么多人看?而我的其他文章沒(méi)人看??!

正文

以上對(duì)<foreach/>的說(shuō)明是基于list的的,下面來(lái)講下對(duì)數(shù)組的支持。

XXXMapper.java文件內(nèi)容如下:

int insertOrder(OrderInfo[] orders);

與之對(duì)應(yīng)的mapper XML配置文件:

<insert id = "insertOrder">
  INSERT INTO  order (
    money,
    remark
  )
  VALUES
  <foreach collection = "array" item = "item" separator = ",">
    #{item.money},
    #{item.remark}
  </foreach>
</insert>

說(shuō)明:

  1. item是引用的名稱,提供給#{}使用。
  2. separator是每條item的分隔符。

注意點(diǎn):

  1. 還有一個(gè)地方需要注意的是如果你的循環(huán)對(duì)象使用的@Param("extraName")注解或者你的list/數(shù)組包含在一個(gè)對(duì)象中,則不能使用listarray作為collection的參數(shù)(即,collection = "array"collection = "list"),而是需要使用@Param的值或?qū)ο蟮囊妹Q。
  2. 如果你的listarray是一個(gè)簡(jiǎn)單類型可以直接這樣使用,如下:

XXXMapper.java文件內(nèi)容如下:

int insertOrder(String[] orders);

與之對(duì)應(yīng)的mapper XML配置文件:

<insert id = "insertOrder">
  INSERT INTO  order (
    money
  )
  VALUES
  <foreach collection = "array" item = "item" separator = ",">
    #{item}
  </foreach>
</insert>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容