mybatis传参异常: Parameter ‘XXXXXX‘ not found. Available parameters are [0, 1, param1, param2]解决方案

mybatis传参异常:    Parameter 'XXXXXX' not found. Available parameters are [0, 1, param1, param2]解决方案

传入多个值时,mybatis会自动将这些值转成类似map形式的值,以0,1,2…的序列为keyName。 
这里我们需要先简单了解一下mybatis的传值机制。Mybatis现在可以使用的parameterType有基本类型和Java负责类型。

基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名}获取。 
复杂数据类型:包含Java实体类、Map。通过#{属性名}或#{map的keyName}获取。

四种方式:

  1. 顺序传递参数
  2. 注解@Param传递参数
  3. 使用Map集合传递参数
  4. 使用JavaBean实体类传递参数

dao代码编写方式:
   

int saveImages(@Param(value="groupId") Long groupId,
               @Param(value="nType") int nType,
               @Param(value="imagesUrls") Set<String> imagesUrls);


sql接收参数:                   

<insert id="saveImages" >
        insert into glsa_image (
        type,
        image_group_id,
        url,
        valid,
        gmt_create)
        values
        <foreach collection="imagesUrls" item="url" separator=",">
            (#{nType,jdbcType=INTEGER},
            #{groupId,jdbcType=BIGINT},
            #{url,jdbcType=VARCHAR},
            1,
            now())
        </foreach>
    </insert>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值