Mybatis的批量插入的正确姿势

背景:电商项目的订单管理模块实现创建订单业务逻辑时,一个订单对应Order对应多个订单子明细OrderItem,创建订单成功需要对orderItem子明细表进行批量插入,OrderItemMapper如下:

 void batchInsert(@Param("orderItemList") List<OrderItem> orderItemList);

对应的OrderItemMapper.xml如下,collection对应的是传入的对象orderItemList,注意这里的foreach标签里并没有open和close,如果添加open=“(”  colse=")"结果会报错,正确的是直接将括号放在下面,如下所示:

<!--批量插入-->
  <insert id="batchInsert" parameterType="list">
    insert into  tb_order_item(id,order_no,user_id,product_id,product_name,product_image,
    unit_price,total_price,quantity,create_time,update_time)
    values
    <foreach collection="orderItemList" index="index" item="item" separator=",">
      (
        #{item.id},#{item.orderNo},#{item.userId},#{item.productId},#{item.productName},#{item.productImage},
        #{item.unitPrice},#{item.totalPrice},#{item.quantity},now(),now()
      )
    </foreach>
  </insert>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值