mybaits傳遞多個引數

2021-08-29 05:05:55 字數 2011 閱讀 9241

一、單個引數:

public listgetxxbeanlist(string xxcode);  

select t.* from tablename t where t.id= #

其中方法名和id一致,#{}中的引數名與方法中的引數名一直, 我這裡採用的是***bean是採用的短名字,

select 後的字段列表要和bean中的屬性名一致, 如果不一致的可以用 as 來補充。

二、多引數:

public listget***beanlist(string xxid, string xxcode);  

select t.* from tablename where id = # and name = #

由於是多引數那麼就不能使用parametertype, 改用#{index}是第幾個就用第幾個的索引,索引從0開始

三、map封裝多引數:

public listget***beanlist(hashmap map);  

select 欄位... from *** where id=# code = #

其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那個就在#{}使用那個,map如何封裝就不用了我說了吧。

四、list封裝in:

public listget***beanlist(listlist);  

select 欄位... from *** where id in

# foreach 最後的效果是select 欄位... from *** where id in ('1','2','3','4')

五、多引數傳遞之註解方式示:

例子:

public addrinfo getaddrinfo(@param("corpid")int corpid, @param("addrid")int addrid);

xml配置這樣寫:

select * from addr__info

where addr_id=# and corp_id=#

以前在語句中要帶parametertype的,現在可以不要這樣寫。

六、selectlist()只能傳遞乙個引數,但實際所需引數既要包含string型別,又要包含list型別時的處理方法:

將引數放入map,再取出map中的list遍歷。如下:

listlist_3 = new arraylist();

mapmap2 = new hashmap();

list.add("1");

list.add("2");
map2.put("list", list); //**id

map2.put("sitetag", "0");//**型別

public listgetsysinfo(mapmap2)

select t.syssiteid, t.sitename, t1.mznum as sitetagnum, t1.mzname as sitetag, t.url, t.iconpath

from td_web_syssite t

left join td_mz_mzdy t1 on t1.mznum = t.sitetag and t1.mztype = 10

where t.sitetag = #

and t.syssiteid not in

#

C params傳遞多個引數

c 開發語言中 params 是關鍵字,可以指定在引數數目可變處採用引數的方法引數。在函式的引數數目可變而執行的 差異很小的時候很有用!params關鍵字表示函式的引數是可變個數的,即可變的方法引數,例如console.writeline i,j 就像delphi 裡 writeln 函式一樣,用於...

Scrapy Callback傳遞多個引數方式

在scrapy提交乙個鏈結請求是用 request url,callback func 這種形式的,而parse只有乙個response引數,如果自定義乙個有多引數的parse可以考慮用下面的方法實現多個引數傳遞。def parse self response yield request url c...

mybatis傳遞多個引數

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 1 publicuserselectuser stringname,string area 1 2 3 selectid selectuser resultmap baseresultmap select fromuser user twh...