這樣寫(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ō)明:
- item是引用的名稱,提供給
#{}使用。 - separator是每條item的分隔符。
注意點(diǎn):
- 還有一個(gè)地方需要注意的是如果你的循環(huán)對(duì)象使用的
@Param("extraName")注解或者你的list/數(shù)組包含在一個(gè)對(duì)象中,則不能使用list或array作為collection的參數(shù)(即,collection = "array"或collection = "list"),而是需要使用@Param的值或?qū)ο蟮囊妹Q。 - 如果你的
list或array是一個(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>