mybatis使用ON DUPLICATE KEY批量保存信息,如果信息已经存在,则更新

本文介绍了如何在Mybatis中利用ON DUPLICATE KEY SQL语句进行批量保存数据操作。当数据已存在时,系统将自动执行更新操作,确保数据的准确性。

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

###mybatis批量保存信息,如果信息已经存在,则更新

数据唯一索引建立在authority_identifier,application_id,resource_names上,如果出现冲突就会更新字段

INSERT INTO `upms_resource`(line_no,id,create_time,update_time,version,resource_name,resource_type,authority_identifier,url,application_identifier,parent_resource_id,application_id) VALUES (null, 1151669296037425196,NOW(), NOW(), 0,'userList', 'BUTTON', 'open-api:user:lis','/auth/open-api/user/list' , 'finance-system', 1151669296037425154, 1)  on duplicate key update resource_name=VALUES(resource_name),resource_type=VALUES(resource_type),url=VALUES(ur),parent_resource_id=VALUES(parent_resource_id);

crm_taobao_traderates是淘宝的店铺评论表,如果维护了数据库的唯一约束就会更新数据

<sql id="table_name">crm_taobao_traderates</sql>
	<sql id="base_column">series,tid,oid,role,nick,result,taobao_created,rated_nick,item_title,item_price,content,reply,num_iid,valid_score,create_dtme,last_updtme,create_user_id,cancelsign,insertdata,updatedata,data_sign,last_update_user_id,ec_shop_num_id,tenant_num_id,source_json,append_sign,append_json </sql>


<insert id="saveBatchCrmTaobaoTraderates" parameterType="list">
		INSERT INTO <include refid="table_name"/>(<include refid="base_column"/>) 
		<foreach collection="list" item="o" open="values"   separator=",">
			(#{o.series}, #{o.tid}, #{o.oid}, #{o.role}, #{o.nick}, #{o.result}, #{o.taobaoCreated}, #{o.ratedNick}, #{o.itemTitle}, #{o.itemPrice},REPLACE(REPLACE(#{o.content},char(10),''),char(13),'') , #{o.reply}, #{o.numIid}, #{o.validScore}, now(), null, 0, 'N', 'Y', 'N', #{o.dataSign}, 0, #{o.ecShopNumId},#{o.tenantNumId},#{o.sourceJson},#{o.appendSign},#{o.appendJson})
		</foreach>
		ON DUPLICATE KEY UPDATE last_updtme=now()
	</insert>
	
	<insert id="saveBatchAppendCrmTaobaoTraderates" parameterType="list">
		insert into  <include refid="table_name"/>(series,append_json,append_sign)  
       	<foreach collection="list" item="o" open="values"   separator=",">
			(#{o.series},#{o.appendJson},#{o.appendSign})
		</foreach>
        on duplicate key update append_json=VALUES(append_json),append_sign=VALUES(append_sign)
	</insert>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值