mybatis存在更新不存在新增問題
mybatis存在更新不存在新增
主鍵或者唯一索引,有相同的字段進(jìn)行添加時進(jìn)行其他字段更新,否則進(jìn)行新增
<insert id="insertFwdcBlacklist" parameterType="com.qujie.mintwo.life.fwdc.entity.FwdcBlacklist">
insert into fwdc_blacklist
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="shopId != null">shop_id,</if>
<if test="shopName != null">shop_name,</if>
<if test="sdmerid != null">sdmerid,</if>
<if test="shieldFunction != null">shield_function,</if>
<if test="creditCode != null">credit_code,</if>
<if test="idcard != null">idcard,</if>
<if test="addTime != null">add_time,</if>
<if test="addUserId != null">add_user_id,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateUserId != null">update_user_id,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="shopId != null">#{shopId},</if>
<if test="shopName != null">#{shopName},</if>
<if test="sdmerid != null">#{sdmerid},</if>
<if test="shieldFunction != null">#{shieldFunction},</if>
<if test="creditCode != null">#{creditCode},</if>
<if test="idcard != null">#{idcard},</if>
<if test="addTime != null">#{addTime},</if>
<if test="addUserId != null">#{addUserId},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="updateUserId != null">#{updateUserId},</if>
<if test="remark != null">#{remark},</if>
</trim>
ON DUPLICATE KEY UPDATE
shield_function=#{shieldFunction}
</insert>
mybatis存在就更新,不存在就插入
條件
主鍵或唯一索引在現(xiàn)有表中已經(jīng)存在
方法
on duplicate key update
<update id= "userInfo">
insert into user
(id,username,age)
values
(#{id},#{username},#{age})
on duplicate key update
username=values(username),
age=values(age)
<update>當(dāng)id在現(xiàn)有表中存在時,就會執(zhí)行update語句
注意事項:
- 后臺用Integer
- 而非int去接收傳參(Integer初始值為null,而int初始值為0)
- 否則插入失敗
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java使用Validation進(jìn)行數(shù)據(jù)校驗的方式總結(jié)
在Java中提供了一系列的校驗方式,下面這篇文章主要給大家介紹了關(guān)于java使用Validation進(jìn)行數(shù)據(jù)校驗的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
AQS(AbstractQueuedSynchronizer)抽象隊列同步器及工作原理解析
AQS是用來構(gòu)建鎖或者其他同步器組件的重量級基礎(chǔ)框架及整個JUC體系的基石,通過內(nèi)置的FIFO對列來完成資源獲取線程的排隊工作,并通過一個int類型變量表示持有鎖的狀態(tài),本文給大家詳細(xì)介紹下AQS抽象隊列同步器的相關(guān)知識,感興趣的朋友一起看看吧2022-03-03
Java中流式并行操作parallelStream的原理和使用方法
本文詳細(xì)介紹了Java中的并行流(parallelStream)的原理、正確使用方法以及在實際業(yè)務(wù)中的應(yīng)用案例,并指出在使用并行流時需要注意的線程安全問題和性能問題,并提供了最佳實踐建議,感興趣的朋友跟隨小編一起看看吧2025-11-11
Java調(diào)用C++動態(tài)庫(DLL)的完整實踐指南
這篇文章主要為大家詳細(xì)介紹如何通過 JNI(Java Native Interface)在 Java 中調(diào)用一個用 C++ 編寫的分割算法庫,有需要的小伙伴可以了解一下2025-08-08
Mybatis?mysql模糊查詢方式(CONCAT多個字段)及bug
這篇文章主要介紹了Mybatis?mysql模糊查詢方式(CONCAT多個字段)及bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
MyBatis?和?MyBatis-Plus從語法詳解和優(yōu)劣對比
MyBatis和MyBatis-Plus是Java生態(tài)中常用的持久層框架,其中?MyBatis-Plus是在?MyBatis?基礎(chǔ)上的增強(qiáng)工具,下面從語法詳解和優(yōu)劣對比兩部分展開說明,感興趣的朋友一起看看吧2025-07-07

