mybatis+oracle+foreach list 批量插入数据

本文介绍了如何使用MyBatis结合Oracle实现批量插入数据,避免频繁操作数据库导致的性能问题。通过示例展示了利用``标签将list中的对象一次性插入到数据库,以及在Oracle和MySQL中的不同写法。
摘要由CSDN通过智能技术生成

背景:在list中存放对象,本来可以遍历list得到每一个对象,然后将每个对象插入数据库,但是这样做的话没遍历得到一个对象就要操作一次数据库,如果数据少的话还好,如果是成千上万的数据,就会使开销大大增加和性能大大降低,为了解决这个,就需要将之前的每次插入换成批量插入

直接上sql

<insert id="insertData" parameterType="java.util.List" >
    insert into JK_MATNRDTL_FROM_SRM (ID,
     RUNSHEET_DETAIL_ID, ASN_NO, RUNSHEET_DETAIL_NO, PART_NO, MEASURING_UNIT_NO,
      ISEMERGENCY, CZFLAG, ZSIGN, BATTH_NO, REQUIRED_INHOUSE_PACKAGE_QTY,
      ORDER_NO, ITEM_NO, POTYPE, PACKAGE_STYLE, PACKAGE_TYPE,
      PACKAGE_COUNT, LGORT
      )
      SELECT seq_jk_matnrdtl_from_srm.NEXTVAL id, A.*
      FROM(
       <foreach collection="list" item="item" index="index" separator="UNION ALL" >
          select
            #{item.RUNSHEET_DETAIL_ID},#{item.ASN_NO},#{item.RUNSHEET_DETAIL_NO},#{item.PART_NO},#{item.MEASURING_UNIT_NO},
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值