mybtis批量insert传入参数为list

Posted 面壁者罗辑,我是你的破壁人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybtis批量insert传入参数为list相关的知识,希望对你有一定的参考价值。

1 如果传入参数只有一个且类型是List, 则在使用时,collection属性要必须指定为 list

例:

mapper.java

void insertYxlsList(List<TYzglHjglLshjYxls> yxlsList);

mapper.xml

  <insert id="insertYxlsList" parameterType="com.thunisoft.zyrygl.zyry.yzgl.hjgl.pojo.TYzglHjglLshjYxls">
        insert into {db.t_yzgl_hjgl_lshj_yxls} (c_bh, c_lshj_bh, c_lsbh, c_cjr_bh, d_cjsj, c_xgr_bh, d_zhxgsj)
        values 
        <foreach collection ="list" item="yxls" index= "index" separator =",">
        (#{yxls.CBh,jdbcType=VARCHAR}, #{yxls.CLshjBh,jdbcType=VARCHAR}, #{yxls.CLsbh,jdbcType=VARCHAR}, 
            #{yxls.CCjrBh,jdbcType=VARCHAR}, #{yxls.DCjsj,jdbcType=TIMESTAMP}, #{yxls.CXgrBh,jdbcType=VARCHAR}, 
            #{yxls.DZhxgsj,jdbcType=TIMESTAMP})
        </foreach >
    </insert>

 2,如果传入参数使用了@Param(value="value"),collection的属性必须为"value"值

例:

mapper.java

   void insertYxlsList(@Param("yxlsList")List<TYzglHjglLshjYxls> yxlsList);

mapper.xml

<insert id="insertYxlsList" parameterType="com.thunisoft.zyrygl.zyry.yzgl.hjgl.pojo.TYzglHjglLshjYxls">
        insert into {db.t_yzgl_hjgl_lshj_yxls} (c_bh, c_lshj_bh, c_lsbh, c_cjr_bh, d_cjsj, c_xgr_bh, d_zhxgsj)
        values 
        <foreach collection ="yxlsList" item="yxls" index= "index" separator =",">
        (#{yxls.CBh,jdbcType=VARCHAR}, #{yxls.CLshjBh,jdbcType=VARCHAR}, #{yxls.CLsbh,jdbcType=VARCHAR}, 
            #{yxls.CCjrBh,jdbcType=VARCHAR}, #{yxls.DCjsj,jdbcType=TIMESTAMP}, #{yxls.CXgrBh,jdbcType=VARCHAR}, 
            #{yxls.DZhxgsj,jdbcType=TIMESTAMP})
        </foreach >
    </insert>

 

以上是关于mybtis批量insert传入参数为list的主要内容,如果未能解决你的问题,请参考以下文章

mybatis传入多个参数

mybatis批量插入insert时报错

mybatis传入参数类型parameterType详解

mybatis 批量插入

mybatis多个参数传递

ibatis批量插入怎么做