Mybatis傳參方式

2021-08-07 18:40:55 字數 835 閱讀 8284

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

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

第一種方案 

dao層的函式方法 ?

1public user selectuser(string name,string area);?

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

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

第二種方案

此方法採用map傳多引數.

dao層的函式方法?

1public user selectuser(map parammap);?

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

service層呼叫?

1234

5private user ***selectuser()

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

第三種方案

dao層的函式方法?

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

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

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

Mybatis傳參方式總結

mybatis 在對 sql 語句進行預編譯之前,會對 sql 進行動態解析,解析為乙個 boundsql 物件,也是在此處對動態 sql 進行處理的。在動態 sql 解析階段,和 會有不同的表現 select from user where name 在動態解析的時候,會解析成乙個引數標記符。就是...

MyBatis 推薦的傳參方式

介面方法 int getagebyid integer id xml對映檔案 select age from user where user id 介面方法 user login param username string username,param password string passwor...

mybatis要點記錄 傳參方式

mybatis plus官網 和 的區別 表示乙個佔位符號 傳入值時,sql解析時,引數是帶引號的,而的區別最大在於 傳入值時,sql解析時,引數是帶引號的,而 穿入值,sql解析時,引數是不帶引號的。能夠防止sql注入,而不能,不能,不能 一般用於傳入不需要轉義的引數 一般推薦使用 進行傳參 能用...