mybatis批量插入函数报“Parameter '__frch_item_0' not found. Available parameters are [list]”错误

mybatis+mysql下批量插入一些问题,在这里记录一下,如下错误信息:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_item_0' not found. Available parameters are [collection, list]

原代码如下:

  <insert id="insertList" parameterType="java.lang.String">
    insert into j_sbcl (DWDM, SXBBH, SBLSH_SHORT, SBLSH, WJLX, CLLX, CLSL, ATTACH_NAME, ATTACH_ID,
     SAVE_TYPE, ATTACH_SIGN, ATTACH_TYPE, ATTACH_PATH, STUFF_SEQ, CLMC, SLBMZZJGDM, XZQHDM, VERSION, REC_FLAG, 
     D_ZZJGDM, BZ, BYZD,CLZT)
    values
        <foreach collection="list" index="index" item="item" separator=",">
             (#{item.dwdm,jdbcType=VARCHAR}, #{item.sxbbh,jdbcType=FLOAT}, #{item.sblshShort,jdbcType=VARCHAR},
              #{item.sblsh,jdbcType=VARCHAR}, #{item.wjlx,jdbcType=INTEGER}, #{item.cllx,jdbcType=INTEGER}, 
              #{item.clsl,jdbcType=VARCHAR}, #{item.attachName,jdbcType=VARCHAR}, #{item.attachId,jdbcType=VARCHAR}, 
              #{item.saveType,jdbcType=VARCHAR}, #{item.attachSign,jdbcType=VARCHAR}, #{item.attachType,jdbcType=VARCHAR}, 
              #{item.attachPath,jdbcType=VARCHAR}, #{item.stuffSeq,jdbcType=VARCHAR}, #{item.clmc,jdbcType=VARCHAR}, 
              #{item.slbmzzjgdm,jdbcType=VARCHAR}, #{item.xzqhdm,jdbcType=VARCHAR}, #{item.version,jdbcType=VARCHAR}, 
              1, #{item.dZzjgdm,jdbcType=VARCHAR}, #{item.bz,jdbcType=VARCHAR}, #{item.byzd,jdbcType=VARCHAR},#{item.clzt,jdbcType=VARCHAR})
        </foreach>
  </insert>

后网上查阅资料,按以下两个步骤排查:

  1. 查看parameterType的类型是不是java.util.List类型,如果是的话,看 foreach 的collection属性是不是list.
  2. 看一下foreach里面的属性是否写错或有没有传递进来

根据这两点都没查出来,关于第一个步骤其实可以使用parameterType=”java.lang.String” 入参类型,最后使用最笨的办法,一个一个参数加进去测试,最后发现加到某两个字段时就报错了,仔细检查原来是这两个字段已经在domain里注释掉了,换句话说对象就没有这两个属性,所以报了这个错。
已经注释掉的两个字段:

    //private String clzt;
    //private String clsj;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值