mybatis中foreach標籤的使用

2021-10-12 02:45:42 字數 3093 閱讀 1504

mybatis中foreach標籤的使用

這裡講的是foreach 的引數是bean的使用情況

dao層的**如下:

inventoryvo selectskuinventory

(@param

("dto"

) inventorypagedto dto)

;

inventorypagedto中的**如下:

/**

* 品牌

*/private list

brand;

/** * 型號名稱

*/private list

modelname;

/** * 顏色

*/private list

color;

/** *容量

*/private list

capacity;

/** * 型號

*/private list

model;

注意,在mybatis中size()方法必須和判空聯合使用

<

select id=

"selectskuinventory" parametertype=

"net.inventory.model.inventorypagedto" resultmap=

"vomap"

>

select spu_brand,spu_name,color,model,carrier,capacity

from epsi_inventory

<

where

>

<

if test=

"dto.brand != null and dto.brand.size() != 0"

>

and spu_brand in

"dto.brand" item=

"brand"

index

="index"

open

="("

close

=")" separator=

",">

#<

/foreach>

>

<

if test=

"dto.modelname != null and dto.modelname.size() != 0"

>

and spu_name in

"dto.modelname" item=

"modelname"

index

="index"

open

="("

close

=")" separator=

",">

#<

/foreach>

>

<

if test=

"dto.model != null and dto.model.size() != 0"

>

and model in

"dto.model" item=

"model"

index

="index"

open

="("

close

=")" separator=

",">

#<

/foreach>

>

<

if test=

"dto.color != null and dto.color.size() != 0"

>

and color in

"dto.color" item=

"color"

index

="index"

open

="("

close

=")" separator=

",">

#<

/foreach>

>

<

if test=

"dto.capacity != null and dto.capacity.size() != 0"

>

and capacity in

"dto.capacity" item=

"capacity"

index

="index"

open

="("

close

=")" separator=

",">

#<

/foreach>

>

<

/where

>

group

by spu_brand,spu_name,color,model,carrier,capacity

<

/select

>

以上面的查詢band為例做解析

<

if test=

"dto.brand != null and dto.brand.size() != 0"

>

and spu_brand in

"dto.brand" item=

"brand"

index

="index"

open

="("

close

=")" separator=

",">

#<

/foreach>

>

因為傳進來的是乙個bean,bean裡面定義了前端可以傳給後端的幾個字段(brand,modelname,color,capacity,model )這幾個欄位的型別都是list。

所以判斷brand時foreach標籤中的collection的值要寫成dto.brand

item的值是自己定義的,表示的是集合中的元素進行迭代時的別名

index的值也是自己定義,一般用index,表示在迭代過程中,每次迭代到的位置

open:表示該語句以什麼開始

close:表示該語句以什麼結束

separator:表示在每次進行迭代之間以什麼符號作為分隔符

mybatis動態sql中foreach標籤的使用

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

MyBatis中的foreach迴圈

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

mybatis動態sql中foreach標籤的使用

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