Mybatis传递多个参数

转载 2016年08月31日 16:25:53

Mybatis的Mapper接口的参数,一般是一个对象,但如果不是对象,并且有多个参数的时候呢?我们第一个的想法是把参数封装成一个java.util.Map类型,然后在方法的注释上面写上map的key是什么,但是,这样的做法明显不够直观,不能够一眼看出这个方法的参数是什么,并且,影响到了java方法的多态性(方法名相同,参数数量或类型不同)。下面的方法一和方法二能够解决问题!

DAO层的函数方法 


1
PublicUser selectUser(String name,String area);
对应的Mapper.xml  

1
2
3
<selectid="selectUser"resultMap="BaseResultMap">
    select fromuser_user_t   whereuser_name = #{0} anduser_area=#{1}
</select>

其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

此方法采用Map传多参数.

Dao层的函数方法


1
PublicUser selectUser(Map paramMap);
对应的Mapper.xml

1
2
3
<selectid=" selectUser" resultMap="BaseResultMap">
   select fromuser_user_t   whereuser_name = #{userName,jdbcType=VARCHAR}anduser_area=#{userArea,jdbcType=VARCHAR}
</select>

Service层调用


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

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

Dao层的函数方法

1
PublicUser selectUser(@Param(“userName”)String name,@Param(“userArea”)String area);
对应的Mapper.xml

1
2
3
<selectid=" selectUser" resultMap="BaseResultMap">
   select fromuser_user_t   whereuser_name = #{userName,jdbcType=VARCHAR}anduser_area=#{userArea,jdbcType=VARCHAR}
</select

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

Mybatis传递多个参数的解决办法(三种)

第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml select...
  • z69183787
  • z69183787
  • 2017年07月25日 12:02
  • 374

Mybatis多参数传递三种解决方案

在Mybatis中定义mapper信息有两种方式:1·利用xml文件写一个对应的包含mapper信息的配置文件;2·定义一个mapper接口和一些相应的操作方法。        我使用的是第二种方法...
  • u012788601
  • u012788601
  • 2016年03月27日 09:41
  • 2122

Mybatis 传入多个参数的方法

1.由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始 UPDATE ams_user SET log...
  • shi1451042748
  • shi1451042748
  • 2016年06月29日 21:50
  • 7373

mybatis collection和association 传多个参数

mybatis3.0版本以上,才可以 ofType="ComplexProp" select="selectPropsForProcess"> column...
  • chendaoqiu
  • chendaoqiu
  • 2015年04月27日 17:39
  • 5321

mybatis 关联查询 含有集合的嵌套查询 并传多个参数

mybatis 关联查询 含有集合的嵌套查询 并传多个参数
  • wangxy799
  • wangxy799
  • 2015年12月02日 11:11
  • 1541

MyBatis传入多个参数问题

一、单个参数: public List getXXBeanList(String xxCode);     select t.* from tableName t where t.id= #{id...
  • scholar_man
  • scholar_man
  • 2015年09月10日 11:41
  • 1692

MyBatis查询多个参数传入的问题

一、单个参数: public List getCarEventList(String eventCode);     select t.* from car_event t whe...
  • learner198461
  • learner198461
  • 2017年03月02日 11:27
  • 446

mybatis注解一对多如何传递多个参数

@Mapper public interface  OrdersMapper {   @SelectProvider(type=BillProvider.class , method="que...
  • BL_Endian
  • BL_Endian
  • 2017年07月24日 11:27
  • 450

MyBatis传递多个参数,

update tm01_department when dept_id = #{item.deptId} then #{item.sortNo} ...
  • mlz_2
  • mlz_2
  • 2016年08月15日 17:56
  • 105

mybatis传递多个参数

据我目前接触到的传多个参数的方案有三种。 DAO层的函数方法  ? 1 Public User selectUser(Stri...
  • u014209975
  • u014209975
  • 2015年04月07日 16:56
  • 451
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mybatis传递多个参数
举报原因:
原因补充:

(最多只允许输入30个字)