MyBatis传参数四种方法

第一种方式:注解也是开发中最常见的一种方式(明显看出自己所传递的参数,)

DAO类中的方法函数

 Public User selectUser(@param("userName")Stringname,@param("userArea")String area); 

对应的Mapper.xml语句

<select id=" selectUser" resultMap="BaseResultMap"> 
    select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR} 
  </select>

  也可以是这样

  <select id=" selectUser" resultMap="BaseResultMap"> 
    select * from user_user_t where user_name = #{userName} and user_area=#{userArea} 
  </select>

根据你所拥有的Mybatis版本而去 老版本需要添加参数类型

这种方法的好处在于比较直观,只要看到dao方法就知道传了什么参数。


第二种方式:多个参数传值(索引方式)(简便,减少代码量)

DAO类中的方法函数

 public List<XXXBean> getXXXBeanList(String xxId, String xxCode);  


对应Mapper.xml语句

 <select id="getXXXBeanList" resultType="XXBean">

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

  </select>  

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



第三种方式:Map封装多参数

 DAO类中的方法函数 
 public List<XXXBean> getXXXBeanList(HashMap map);  
对应Mapper.xml语句
<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">     
     select 字段... from XXX where id=#{xxId} code = #{xxCode}    
    </select>   

Service层调用

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

其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。

第四种方式:List封装in
 DAO类中的方法函数
public List<XXXBean> getXXXBeanList(List<String> list);  
对应的Mapper.xml文件
 <select id="getXXXBeanList" resultType="XXBean">
    select 字段... from XXX where id in
    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
      #{item}  
    </foreach>  
  </select>  



foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4')







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值