前言
單個pttzndv引數
單個引數的傳參比較簡單,可以是任意形式的,比如#、#或者#,但是為了開發規範,盡量使用和入參時一樣。
mapper如下:
userinfo selectbyuserid(string userid);
xml如下:
select * from user_info where user_id=# and status=1
多個引數
多個引數的情況下有很多種傳參的方式,下面一一介紹。
使用索引【不推薦】
userinfo selectbyuseridandstatus(string userid,integer status);
xml如下:
select * from user_info where user_id=# and status=#
注意:由於開發規範,此種方式不推薦開發中使用。
使用@param
@param這個註解用於指定key,一旦指定了key,在sql中即可對應的key入參。
mapper方法如下:
userinfo selectbyuseridandstatus(@param("userid") string userid,@param("status") integer status);
xpttzndvml如下:
select * from user_info where user_id=# and status=#
使用map
mybatis底層就是將入參轉換成map,入參傳map當然也行,此時#中的key就對應map中的key。
mapper中的方法如下:
userinfo selectbyuseridandstatusmap(map map);
xml如下:
select * from user_info where user_id=# and status=#
測試如下:
@test
void contextloads()
pojo【推薦】
多個引數可以使用實體類封裝,此時對應的key就是屬性名稱,注意一定要有get方法。
mapper方法如下:
userinfo selectbyentity(userinforeq userinforeq);
xml如下:
select * from user_info where user_id=# and status=#
實體類如下:
@data
public class userinforeq
list傳參
list傳參也是比較常見的,通常是sql中的in。
mapper方法如下:
list selectlist( list userids);
xml如下:
select * from user_info where status=1
and user_id in
#陣列傳參
這種方式類似list傳參,依舊使用foreach語法。
mapper方法如下:
list selectlist( string userids);
xml如下:
select * from user_info where status=1
and user_id in#總結
mybatis傳參的幾種方式
1,param 參考文章 select select s id id,s name name,class id classid from student where s name and class id publicstudent select param aaaa string name,par...
Mybatis傳參方式
mybatis傳多個引數 三種解決方案 據我目前接觸到的傳多個引數的方案有三種。第一種方案 dao層的函式方法 1public user selectuser string name,string area 123select from user user t where user name and...
Mybatis傳參方式總結
mybatis 在對 sql 語句進行預編譯之前,會對 sql 進行動態解析,解析為乙個 boundsql 物件,也是在此處對動態 sql 進行處理的。在動態 sql 解析階段,和 會有不同的表現 select from user where name 在動態解析的時候,會解析成乙個引數標記符。就是...