zoukankan      html  css  js  c++  java
  • mybatis 批量更新 Parameter '__frch_item_0' not found. Available parameters are [list]

    一次在做批量更新数据的时候报错 Parameter '__frch_item_0' not found. Available parameters are [list] 记过反复查找,最后才发现是一个字段的字母小写了。

    下面给大家提供一个实例:

    xml:这里说明一下这个sql的意思是根据h_code去更新h_clientA的值

    <update id="updateHards" parameterType="java.util.List">
            <foreach collection="list" item="item" index="index" open="" close="" separator=";">
                update hard
                <set>
                    <if test="item.h_clientA !=null">
                        h_clientA = #{item.h_clientA,jdbcType=VARCHAR}
                    </if>
                    <if test="item.h_clientB !=null">
                        h_clientB = #{item.h_clientB,jdbcType=VARCHAR}
                    </if>
                    <if test="item.h_clientC !=null">
                        h_clientC = #{item.h_clientC,jdbcType=VARCHAR}
                    </if>
                </set>
                where h_code = #{item.hCode,jdbcType=VARCHAR}
            </foreach>
        </update>
    

     dao:

    int updateHards(List<Hard> list);
    

     controller:

    List<Hard> hards = new ArrayList<Hard>();
    for (int i = 0; i < split.length; i++) {
                Hard hard = new Hard();
                switch (client.getClient_level()) {
                    case 2:
                        hard.setH_clientB(h_client);
                        break;
                    case 3:
                        hard.setH_clientC(h_client);
                        break;
        }
     
       hard.sethCode(split[i]);
       hards.add(hard);
     }
     // 3.进行操作,并返回
     
     int updateHards = hardManageService.updateHards(hards);
    

    相关的错误信息:

    1.查看parameterType的类型是不是java.util.List类型,如果是的话,看foreach 的collection属性是不是list,

    因为 传递一个 List 实例或者数组作为参数对象传给 MyBatis,MyBatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键 

    2.看一下foreach里面的值有没有传递进来 

    3.看foreach里面的名称字段是否写错 

    4.还有就是我用Mybatis的时候,用mysql的值插入自动增长值,里面的key我在数据库中没有设置自动增长,然后我又用了selectkey,所以也会出现这种情况

    如有需要可以加我Q群【308742428】大家一起讨论技术。

    后面会不定时为大家更新文章,敬请期待。

    喜欢的朋友可以关注下。

      

     

     

  • 相关阅读:
    大数据基础---安装ClouderaManager,CDH和Impala,Hue,oozie等服务
    大数据基础---ClouderaManager和CDH是什么?
    大数据基础---通过Flume、Sqoop分析日志
    VS2015设置快捷键
    QGIS添加在线地图
    Python + SQLite + ST_Geometry
    Python 安装 selenium 与 chromedriver.exe
    Python IDLE 编译器 显示代码行号
    Python IDLE 编辑器开启代码自动提示
    Python IDLE编辑器打开后缀名为.py的文件
  • 原文地址:https://www.cnblogs.com/dsn727455218/p/10557372.html
Copyright © 2011-2022 走看看