mybatis oracle -批量插入,存在则更新

注意:1.其中list中放的是个实体对象 list = new ArrayList<PBWUserInfo>();

          2.一次最好不要插入太多(本人是每次200,休眠一秒,因为是在循环里面异步处理的),否则会出现一些其他的错误。

          3.程序控制一些插入条数。

<insert id="batchUpdatePBWUserInfo" parameterType="java.util.List">
        MERGE INTO S_PBW_USER t
        USING (
          <foreach collection="list" item="item" index="index" separator="union" >
            SELECT 
                  #{item.userId,jdbcType=VARCHAR}      USERID,
                  #{item.userName,jdbcType=VARCHAR}    USERNAME,
                  #{item.userType,jdbcType=VARCHAR}    USERTYPE,
                  #{item.mobile,jdbcType=VARCHAR}      MOBILE,
                  #{item.code,jdbcType=VARCHAR}        USECODE,
                  #{item.companyName,jdbcType=VARCHAR} COMPANYNAME,
                  SYSDATE CREATE_TIME
            FROM DUAL
          </foreach>) t1
        ON (t.USER_ID =  t1.USERID )
        WHEN MATCHED THEN
            UPDATE SET t.update_time = t1.CREATE_TIME
        WHEN NOT MATCHED THEN
               INSERT(ID, USER_ID, USER_NAME, MOBILE, CODE, COMPAY_NAME, DEL_FLAG,CREATE_TIME)
              VALUES (t1.USERID, t1.USERID, t1.USERNAME, t1.MOBILE, t1.USECODE, t1.COMPANYNAME, 0,t1.CREATE_TIME)
  </insert>

转载于:https://my.oschina.net/huangguangsheng/blog/1925779

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值