MyBatis的foreach語句詳解

2022-05-09 00:45:07 字數 1532 閱讀 7235

foreach 的主要用在構建in條件中,它可以在sql語句中進行迭代乙個集合。

foreach 元素的屬性主要有 item,index,collection,open,separator,close。

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

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

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

如果傳入的引數是多個的時候,我們就需要把它們封裝成乙個 map 了,當然單引數也可以封裝成map,實際上如果你在傳入引數的時候,在 breast 裡面也是會把它封裝成乙個 map 的,map 的 key 就是引數名,所以這個時候 collection 屬性值就是傳入的 list 或 array 物件在自己封裝的 map 裡面的 key 。

下面分別來看看上述三種情況的示例**:

1.單引數 list 的型別:

123456

select * from t_blog where id in

#foreach>

select>

1

public listdynamicforeachtest(listids);

測試**:

123

4567

891011

1213

2.單引數array陣列的型別:

123456

select * from t_blog where id in

#foreach>

select>

1

public listdynamicforeach2test(int ids);

對應的測試**:

123

4567

8910

3.自己把引數封裝成map的型別

123456

select * from t_blog where title like "%"#"%" and id in

#foreach>

select>

1

public listdynamicforeach3test(mapparams);

對應測試**:

123

4567

891011

1213

1415

1617

1819

MyBatis中的foreach迴圈

mybatis動態sql中foreach標籤的使用 foreach標籤主要用於構建in條件,他可以在sql中對集合進行迭代。如下 delete from user where id in 我們假如說引數為 int ids 那麼列印之後的sql如下 delete form user where id ...

mybatis的foreach標籤用法

foreach元素的屬性主要有 item,index,collection,open,separator,close。item表示集合中每乙個元素進行迭代時的別名,index指 定乙個名字,用於表示在迭代過程中,每次迭代到的位置,open表示該語句以什麼開始,separator表示在每次進行迭代之間...

MyBatis的foreach語句詳解

foreach的主要用在構建 in條件中,它可以在 sql語句中進行迭代乙個集合。foreach 元素的屬性主要有 item index collection open separator close item 表示集合中每乙個元素進行迭代時的別名,index 指 定乙個名字,用於表示在迭代過程中,...