[英]MyBatis do a fetch and based on return value do an update/insert inside the Xxxmapper.xml?
有沒有一種方法可以在Mybatis插入SQL配置內嵌入select from table
的select from table
該配置會檢查記錄是否存在->在同一表上運行更新
否則只插入數據。 我知道可以通過編程方式完成,但是需要一種方法在mapper.xml中完成
數據庫:Oracle 11g,mybatis 3.1.x
任何建議都是有幫助的
謝謝
使用UPSERT語句,大多數數據庫都支持UPSERT語句。 返回值將是更新或插入的記錄數。 盡管您尚未提供要對其執行更新或插入操作的數據庫。
UPDATE
Oracle 11g確實支持upsert
MERGE INTO KP_TBL USING DUAL ON (MY_KEY= #{myKey})
WHEN MATCHED THEN
UPDATE SET OTHER_PARAM = #{myOtherParam},
SEC_PARAM = #{sec_param}
WHEN NOT MATCHED THEN
INSERT (MY_KEY, OTHER_PARAM,SEC_PARAM) VALUES(#{myKey},#{myOtherParam},#{sec_param)
可以使用SQL手段完成。 不幸的是,您沒有提到要使用哪個特定的數據庫管理系統,因為ANSI SQL中沒有這種功能。 例如,如果您使用MySQL INSERT ... ON DUPLICATE KEY UPDATE
就是必須的方法。
例如:
<insert id="instSample" parameterType="SampleModel">
INSERT INTO table (a,b,c) VALUES (#{a}, #{b}, #{c})
ON DUPLICATE KEY UPDATE c = #{c};
</insert>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.