Mybatis (ParameterType) 如何传递多个不同类型的参数

方法一:不需要写parameterType参数

public List<XXXBean> getXXXBeanList(String name, String password);
<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where name=#{0} and password = #{1}  

</select>  

由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始

 

方法二:基于注解(最简单)

public List<XXXBean> getXXXBeanList(@Param("name")String name, @Param("password")String password);  
<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where name= #{name} and password= #{password}  

</select>  

使用@param 可以指定参数是哪一个。

 

方法三:Map封装

public List<XXXBean> getXXXBeanList(HashMap map);  
<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">

  select 字段... from XXX where id=#{xxId} code = #{xxCode}  

</select>  


其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个。

 

方法四:List封装

public List<XXXBean> getXXXBeanList(List<String> list);  

<select id="getXXXBeanList" resultType="XXBean">
  select 字段... from XXX where id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}  
  </foreach>  
</select> 

总结

传递list和map在资源消耗上肯定远大于方法一和方法二,但是有一些特殊的情形需要传递list,比如你需要传递一个id集合并批量对id进行sql操作然后再返回等等。所以都需要了解。

转载:https://www.jianshu.com/p/d977eaadd1ed

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值