Mybatis傳多個引數(三種解決方案)

2021-09-02 15:38:54 字數 1129 閱讀 8843

mybatis傳多個引數(三種解決方案)

據我目前接觸到的傳多個引數的方案有三種。

第一種方案

dao層的函式方法

public user selectuser(string name,string area);

select * from user_user_t where user_name = # and user_area=#

其中,#代表接收的是dao層中的第乙個引數,#代表dao層中第二引數,更多引數一致往後加即可。

第二種方案

此方法採用map傳多引數.

dao層的函式方法

public user selectuser(map parammap);

select * from user_user_t where user_name = # and user_area=#

service層呼叫

private user ***selectuser()

個人認為此方法不夠直觀,見到介面方法不能直接的知道要傳的引數是什麼。

第三種方案

dao層的函式方法

public user selectuser(@param(「username」)stringname,@param(「userarea」)string area);

select * from user_user_t where user_name = # and user_area=#

個人覺得這種方法比較好,能讓開發者看到dao層方法就知道該傳什麼樣的引數,比較直觀,個人推薦用此種方案。

例如://最近30天內聯網率

map.put("gatewayid", objectno);

devicegatewayhistory dgh = devicegatewayhistoryservice.findonlinebymap(map);

select gateway_id, sum(online_minute) as online_minute, sum(underline_minute) as underline_minute

from device_gateway_history

where stime>=# and and gateway_id=# group by gateway_id

Mybatis傳多個引數(三種解決方案)

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 public user selectuser string name,string area select from user user t where user name and user area 其中,代表接收的是dao層中的第乙個引...

Mybatis傳多個引數(三種解決方案)

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 public user selectuser string name,string area select from user user t where user name and user area 其中,代表接收的是dao層中的第乙個引...

Mybatis傳多個引數(三種解決方案)

dao層的函式方法 1 publicuserselectuser stringname,string area 1 2 3 selectid selectuser resultmap baseresultmap select fromuser user twhereuser name anduser...