mapper介面引數為map的情況

2022-06-30 09:36:09 字數 1846 閱讀 4072

1、單個引數,那麼直接使用mybatis語法即可。

2、多個引數:

2.1 多個引數的情況下,如果型別相同的話,比如都是string型別,可以直接使用mybaits的parametertype=「string」

2.1 多個引數,但是型別不相同,比如void add(integer factorystatus,listids)這種情況的話引數可以用map進行封裝。

如上面的需求,更新某個id的生產商狀態可以直接傳入上面2個引數。

但是如果遇到多個條件查詢的話,比如有多個框框,包括人員編號、卡號、卡片型別、考勤型別等等,條件可以為空或者不為空,這種情況可以建立乙個類將查詢條件封裝到這個類中,或者引數為查詢條件都可以。

如下實體類**:

@data

public class productdto

介面的**

public listlistbykeyword(integer pagenum, integer pagesize, productdto productdto)

為了和實體類的屬性區分,map的key這裡設定成大寫。

listlistbykeyword(mapmap);

select

from pms_product

delete_status=0

and name like concat('%',#,'%')

and product_sn like concat('%',#,'%')

and product_category_id=#

and brand_id=#

and publish_status=#

and verify_status=#

***這裡的話 裡面是map的key值

上面的**還可以改造成不用map格式接收,這種方式會比較簡單點。

listlistbycondition(@param("orderdto") orderdto orderdto);

select

from oms_order

delete_status=0

and order_sn like concat('%',#,'%')

and (

receiver_name like concat('%',#,'%')

or receiver_phone like concat('%',#,'%')

)and create_time like concat('%',#,'%')

and 'status'=#

and order_type=#

and source_type=#

3、傳入的引數為list的情況

**不做任何變動

int deletebatch(listids);

update

oms_order

set delete_status=1

where id in

#

這裡的collection就是list,記得和上面的例子區分開來 

mybatis.xml中標籤

其中標籤的話和其他語句一樣都有類似id的屬性,但是他有特殊的usegeneratedkey=「true」  keyproperty="id"     ** 這個的意思是表示如果資料庫中id欄位設定成自增的話,那麼這裡的話呼叫這個sql語句的話,插入的資訊id也會進行自增。

如果不加的話獲取不到插入的這條記錄id值

mybatis的mapper引數傳遞

簡單引數傳遞是指 actor selectactorbyid long id select id selectactorbyid resulttype canger.study.chapter04.bean.actor select actor id as id,first name as firs...

mapper介面中的方法解析

原文 mybatis逆向工程生成的example類的使用 thedarkclouds的部落格 csdn部落格 mybatis逆向工程生成的example類的使用 方法 功能說明 int countbyexample userexample example thorws sqlexception 按條...

springboot介面引數為List

springboot介面訪問,如果是走http請求,那麼引數會預設轉換成鍵值對格式,或者是json字串形式的。今天就遇到乙個場景,我需要乙個list結構的引數,list裡面又是物件,那我們該怎麼傳參呢?我們不能再瀏覽器上直接拼接引數發請求了,例如 這樣的格式是不被允許的,請求會報錯。那麼我們轉換思路...