mybatis dao用@Param传参, 如果有多个参数,在mapper里面所有出现的参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis dao用@Param传参, 如果有多个参数,在mapper里面所有出现的参数相关的知识,希望对你有一定的参考价值。

包括<if test="abc!=null">这种,abc这种一定要带在dao里的@Param里面吗?

参考技术A 目前能想要的有3种方式,具体如下: 1、用map集合的方式: Map paramMap = new HashMap();paramMap.put("username", "zhangsan");paramMap.put("password", "123");dao.queryUserInfo(paramMap); // 调用接口的方法,查询用户信息本回答被提问者和网友采纳

MyBatis dao层 方法传参

MyBatis dao层 方法传参有三种方法。

1. 以下标的方法获取参数。

 <update id="insertSuccessKilled">
       INSERT ignore INTO success_killed(seckill_id,user_phone,state)VALUES (#{0},#{1},1)
 </update>

2. 以map作为dao方法中的参数,通过使用key和类型来获取参数。

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

Service层调用

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

3. 在dao方法中的参数里通过增加@Param("param"),在mapper中引用param来获取参数。

<update id="reduceNumber">
        <!-- 具体sql -->
        update
            seckill
        set
            number = number-1
        where seckill_id = #{seckillId}
        and start_time <![CDATA[ <= ]]> #{killTime}
        and end_time >= #{killTime}
        and number > 0;

</update>

以上是关于mybatis dao用@Param传参, 如果有多个参数,在mapper里面所有出现的参数的主要内容,如果未能解决你的问题,请参考以下文章

mybatis传参

Mybatis 字符串传参异常解析

MyBatis dao层 方法传参

Mybatis传多个参数之@Param注解传参法

Spring传参数注解技术

mybatis传参的几种方式