Mybatis傳遞多個引數的方式

2021-09-24 22:54:01 字數 1079 閱讀 7819

下面給大家總結了以下幾種多引數傳遞的方法。

public user selectuser(string name, int deptid);

select * from user

where user_name = # and dept_id = #

#{}裡面的數字代表你傳入引數的順序。

這種方法不建議使用,sql層表達不直觀,且一旦順序調整容易出錯。

public user selectuser(@param("username") string name, int @param("deptid") deptid);

select * from user

where user_name = # and dept_id = #

#{}裡面的名稱對應的是註解@param括號裡面修飾的名稱。

這種方法在引數不多的情況還是比較直觀的,推薦使用。

public user selectuser(mapparams);

select * from user

where user_name = # and dept_id = #

#{}裡面的名稱對應的是map裡面的key名稱。

這種方法適合傳遞多個引數,且引數易變能靈活傳遞的情況。

ps:mybatis傳遞map引數時,如果傳遞引數中沒有對應的key值,在執行sql語句時預設取的是null

例如:map中沒有put 「name」這個key,在sql中使用#時,預設賦值null

public user selectuser(mapparams);

select * from user

where user_name = # and dept_id = #

#{}裡面的名稱對應的是user類裡面的成員屬性。

這種方法很直觀,但需要建乙個實體類,擴充套件不容易,需要加屬性,看情況使用。

mybatis傳遞多個引數

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

mybatis傳遞多個引數

首先從乙個例子入手 需求 根據門店id和商品id查詢門店下面的商品的庫存量 開始使用的方式為 其中看到了 dao層傳入的是map,這樣就導致看到介面之後不知道傳入什麼引數,必須去看dao層的原始碼才能知道具體傳遞的引數,總是覺得很不爽!所以改造介面,改造之後的 public int selectgo...

Mybatis傳遞多個引數

1 publicuserselectuser stringname,string area 12 3 selectid selectuser resultmap baseresultmap select fromuser user twhereuser name anduser area 其中,代表...