業務場景一:
執行單條插入時,如果數據不存在執行插入操作,存在則執行update動作
insert into ${tableNm}
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="xxxUniqueKey != null">
xxx_unique_key,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="xxxUniqueKey != null">
#{xxxUniqueKey,jdbcType=VARCHAR},
</if>
</trim>
ON DUPLICATE KEY UPDATE
<trim suffixOverrides=",">
<if test="xxxUniqueKey != null">
xxx_unique_key= #{xxxUniqueKey ,jdbcType=CHAR},
</if>
</trim>
業務場景二:
執行批量插入時,如果數據不存在執行插入操作,存在則執行update動作
<insert id="batchInsertOnDuplicate" parameterType="java.lang.Object">
insert into ${tableNm}
(
<include refid="Base_Column_List" />
)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.fileUniqueKey,jdbcType=VARCHAR}
...
...
...
)
</foreach>
ON DUPLICATE KEY UPDATE
file_unique_key = values(file_unique_key)
...
...
...
</insert>
學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流羣,羣號碼:543120397 我們一起學Java!