小編給大家分享三種方案解決mybatis傳遞多個(gè)參數(shù)的問題,具體介紹如下所示:
第一種方案
DAO層的函數(shù)方法
1
|
Public User selectUser(String name,String area); |
對(duì)應(yīng)的Mapper.xml
1
2
3
|
<select id= "selectUser" resultMap= "BaseResultMap" > select * from user_user_t where user_name = #{ 0 } and user_area=#{ 1 } </select> |
其中,#{0}代表接收的是dao層中的第一個(gè)參數(shù),#{1}代表dao層中第二參數(shù),更多參數(shù)一致往后加即可。
第二種方案
此方法采用Map傳多參數(shù).
Dao層的函數(shù)方法
1
|
Public User selectUser(Map paramMap); |
對(duì)應(yīng)的Mapper.xml
1
2
3
|
<select id= " selectUser" resultMap= "BaseResultMap" > select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR} </select> |
Service層調(diào)用
1
2
3
4
5
|
Private User xxxSelectUser(){ Map paramMap= new hashMap(); paramMap.put(“userName”,”對(duì)應(yīng)具體的參數(shù)值”); paramMap.put(“userArea”,”對(duì)應(yīng)具體的參數(shù)值”); User user=xxx. selectUser(paramMap);} |
個(gè)人認(rèn)為此方法不夠直觀,見到接口方法不能直接的知道要傳的參數(shù)是什么。
第三種方案
Dao層的函數(shù)方法
1
|
Public User selectUser( @param (“userName”)Stringname, @param (“userArea”)String area); |
對(duì)應(yīng)的Mapper.xml
1
2
3
|
<select id= " selectUser" resultMap= "BaseResultMap" > select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR} </select> |
個(gè)人覺得這種方法比較好,能讓開發(fā)者看到dao層方法就知道該傳什么樣的參數(shù),比較直觀,個(gè)人推薦用此種方案。
以上所述是小編給大家介紹的Mybatis傳遞多個(gè)參數(shù)的解決辦法,希望對(duì)大家有所幫助!