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>
原文地址:https://www.cnblogs.com/dawnyxl/p/9078221.html