MyBatis傳入多個引數的問題

2021-08-31 09:38:36 字數 1799 閱讀 5979

一、單個引數:

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 

#

mybatis傳入多個引數

寫在開頭 還可以通過for來進行遍歷。一 單個引數 public list getxxbeanlist param id string id select t.from tablename t where t.id select 其中方法名和id一致,中的引數名與方法中的引數名一致,這裡採用的是 p...

mybatis 傳入多個引數

一 單個引數 public list getxxbeanlist param id string id select t.from tablename t where t.id select 其中方法名和id一致,中的引數名與方法中的引數名一致,這裡採用的是 param這個引數,實際上 param這...

MyBatis傳入多個引數

一 單個引數 複製 public list getxxbeanlist string xxcode select t.from tablename t where t.id 其中方法名和id一致,中的引數名與方法中的引數名一直,我這裡採用的是 bean是採用的短名字,select 後的字段列表要和b...