首页 > 其他 > 详细

Mybatis传多个参数(三种解决方案)

时间:2020-03-30 12:41:42      阅读:86      评论:0      收藏:0      [点我收藏+]

原文:https://www.cnblogs.com/Jeremy2001/p/10636967.html

第一种方案

DAO层的函数方法 

Public User selectUser(String name,String area);  

对应的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层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

第二种方案

此方法采用Map传多参数.

Dao层的函数方法

1
Public User selectUser(Map paramMap); 

对应的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层调用

1
2
3
4
5
Private User xxxSelectUser(){ 
   Map paramMap=new hashMap(); 
   paramMap.put(“userName”,”对应具体的参数值”); 
   paramMap.put(“userArea”,”对应具体的参数值”); 
   User user=xxx. selectUser(paramMap);} 

个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。

第三种方案

Dao层的函数方法

1
Public User selectUser(@param(“userName”)String name,@param(“userArea”)String area); 

对应的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>

  

个人觉得这种方法比较好,能让开发者看到dao层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案。

-----------------------------------华丽原文分割线----------------------------------

ps:今天在网上看到第三种方案其实还是传个map进去,只不过不用像方案二一样显式的指定,而是通过param注解就可以了

 

Mybatis传多个参数(三种解决方案)

原文:https://www.cnblogs.com/lvchengda/p/12597500.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!