mybatis批量新增,存在就更新(mysql数据库)

只需要把要批量新增的实体类放到集合中,作为参数传给dao,

最关键就是Mapper文件中,直接上代码:

<insert id="batchInsert" parameterType="java.util.List">

  insert into counterparty(<include refid="Base_Column_List"/>)
  values 
  <foreach collection="list" item="counterParty" index="index" separator=",">
  (
  #{counterParty.id,jdbcType=VARCHAR},
  #{counterParty.fullName,jdbcType=VARCHAR},
  #{counterParty.shortName,jdbcType=VARCHAR},
  #{counterParty.initialLimit,jdbcType=VARCHAR},
  #{counterParty.currencyName,jdbcType=VARCHAR},
  #{counterParty.initialLimitUsd,jdbcType=VARCHAR},
  #{counterParty.creditLimitAlertOne,jdbcType=VARCHAR},
  #{counterParty.creditLimitAlertTwo,jdbcType=VARCHAR},
  #{counterParty.creditLimitAlertThree,jdbcType=VARCHAR},
  #{counterParty.closingRunTime,jdbcType=VARCHAR},
  #{counterParty.operator,jdbcType=VARCHAR},
  #{counterParty.uptime,jdbcType=VARCHAR},
  #{counterParty.remark,jdbcType=VARCHAR}
  )
  </foreach>
  ON DUPLICATE KEY UPDATE 
  full_name = VALUES(full_name),
  short_name = VALUES(short_name),
  initial_limit = VALUES(initial_limit),
  currency = VALUES(currency),
  initial_limit_usd = VALUES(initial_limit_usd),
  credit_limit_alert_one = VALUES(credit_limit_alert_one),
  credit_limit_alert_two = VALUES(credit_limit_alert_two),
  credit_limit_alert_three = VALUES(credit_limit_alert_three),
  closing_run_time = VALUES(closing_run_time),
  operator = VALUES(operator),
  uptime = now(3),
  remark = "update"

  </insert>


这样就OK了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值