insert语句 foreach 、虚表的使用 mybatis

本文介绍了一种使用MyBatis框架批量插入库存记录的方法。通过定义一个XML映射文件中的insert标签,利用foreach循环遍历传入的List<Map>类型的参数,并为每一个元素构造一条插入语句。针对stockin_date字段,提供了条件判断来决定是否将其转换为特定格式的时间戳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<insert id="saveEoceonfirmDetail" parameterType="java.util.List">
INSERT INTO OMS_OD_STOCKIN_ITEMS
  (ID,
   ORDER_ID,
   ORDER_CODE,
   GOODS_CODE,
   GOODS_NAME,
   ACCEPTABLE_QTY,
   STOCKIN_DATE,
   CREATED_BY,
   CREATED_TIME,
   VERSION,
   IS_INACTIVE,
   DEFECTIVE_QTY)
   <foreach collection="list" item="item" index="index" open="(" close=")" separator="UNION ALL">   //传入的参数是List<Map<String, Object>>
(SELECT
   #{item.id},
   #{item.entry_order_id},
   #{item.entry_order_code},
   #{item.goods_code},
   #{item.goods_name},
   #{item.acceptable_qty},
   <if test="item.stockin_date !=null and item.stockin_date !=''">
TO_TIMESTAMP( #{item.stockin_date},'YYYY-MM-DD HH24:MI:SS') ,
   </if>
   <if test="item.stockin_date ==null or item.stockin_date ==''">
sysdate,
   </if> 
   'oms',
   sysdate,
   0,
   0,
   #{item.defective_qty}
FROM dual) 
//虚表
</foreach>

</insert>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值