xiao______xin 2015-01-10 03:08 采纳率: 0%
浏览 6393

使用mybatis批量插入数据的问题

mybatis配置文件如下:插入的为集合中的数据,当集合中只有一条数据时可以插入进去,但是当一条以上数据时将会报错

  <insert id="batchInsert" parameterType="java.util.List">
        <selectKey keyProperty="waybillNo" order="BEFORE" resultType="int">
            select  current_timestamp ()
        </selectKey>
        insert into oal_tb_waybill_history (
        waybill_no,waybill_type,account,
        cabinet_code,box_code,recover_box_code,
        captcha,phone,msg_id,msg_state,charge_mode,
        money,number,state,receive_time,send_time,
        operator_id,create_time,update_time,del_tag
        ) values
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item.waybillNo,jdbcType=VARCHAR},
            #{item.waybillType,jdbcType=INTEGER},
            #{item.account,jdbcType=VARCHAR},
            #{item.cabinetCode,jdbcType=VARCHAR},
            #{item.boxCode,jdbcType=VARCHAR},
            #{item.recoverBoxCode,jdbcType=VARCHAR},
            #{item.captcha,jdbcType=VARCHAR},
            #{item.phone,jdbcType=VARCHAR},
            #{item.msgId,jdbcType=BIGINT},
            #{item.msgState,jdbcType=INTEGER},
            #{item.chargeMode,jdbcType=INTEGER},
            #{item.money,jdbcType=DECIMAL},
            #{item.number,jdbcType=TINYINT},
            #{item.state,jdbcType=INTEGER},
            #{item.receiveTime,jdbcType=TIMESTAMP},
            #{item.sendTime,jdbcType=TIMESTAMP},
            #{item.operatorId,jdbcType=INTEGER},
            #{item.createTime,jdbcType=TIMESTAMP},
            #{item.updateTime,jdbcType=TIMESTAMP},
            #{item.delTag,jdbcType=INTEGER}
        </foreach>
    </insert>

报如下错误:图片说明

大家帮忙看看是哪里的错误,感谢!!!

  • 写回答

5条回答 默认 最新

  • pudilang 2015-01-11 10:13
    关注

    你这个foreach取得的waybillNo是同一个值吧,所以插入多条时会报错。

    评论

报告相同问题?