mybatis sql foreach 引數的傳入的三種情況!!

nitamadeai發表於2019-07-28

在使用foreach的時候最關鍵的也是最容易出錯的就是collection屬性,該屬性是必須指定的,但是在不同情況下,該屬性的值是不一樣的,主要有一下3種情況:


1.如果傳入的是單引數且引數型別是一個List的時候,collection屬性值為list 
.

<foreach collection="list" item="item" open="(" close=")" separator="," index="index"> #{item}
 </foreach>
 

2.如果傳入的是單引數且引數型別是一個array陣列的時候,collection的屬性值為array .


<foreach collection="array" item="item" open="(" close=")" separator="," index="index">
          #{item}
</foreach>

3.如果傳入的引數是多個的時候,我們就需要把它們封裝成一個Map了,當然單引數也可以封裝成map,實際上如果你在傳入引數的時候,
在MyBatis裡面也是會把它封裝成一個Map的, 
map的key就是引數名,

所以這個時候collection屬性值就是傳入的List或array物件在自己封裝的map裡面的key.
<foreach collection="categoryIds" item="item" open="(" close=")" separator="," index="index">#{item}
</foreach>

相關文章