java - mybatis mysql 如何實(shí)現(xiàn)upsert功能?
問(wèn)題描述
1、數(shù)據(jù)不存在insert;2、數(shù)據(jù)存在update;3、表中有一個(gè)唯一約束;并根據(jù)該約束執(zhí)行具體的插入或者修改操作。
————————————————————————————
insert into T_name (uid, app_id,createTime,modifyTime) values(111, 1000000,’2017-03-07 10:19:12’,’2017-03-07 10:19:12’) on duplicate key update uid=111, app_id=1000000, createTime=’2017-03-07 10:19:12’,modifyTime=’2017-05-07 10:19:12’
如何把上邊的sql,用mybatis改寫?
問(wèn)題解答
回答1:<insert parameterType='Model'> insert into T_name(uid, name, age, balance) values (100,'yangyang', 23, 100000000) on duplicate key update balance=balance + 100</insert>
以上代碼,自己測(cè)試可以的。
回答2:<insert parameterType='Model'>
insert into T_name (uid, name, age, balance) values (#{uid,jdbcType=VARCHAR},#{name}, 23, 100000000)on duplicate key update balance=balance + 100
</insert>
my mybatis 中 使用#{} 獲取vo屬性值
相關(guān)文章:
1. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?2. sql語(yǔ)句 - mysql中關(guān)聯(lián)表查詢問(wèn)題3. javascript - iframe 為什么加載網(wǎng)頁(yè)的時(shí)候滾動(dòng)條這樣顯示?4. javascript - vscode alt+shift+f 格式化js代碼,通不過(guò)eslint的代碼風(fēng)格檢查怎么辦。。。5. javascript - [js]為什么畫布里不出現(xiàn)圖片呢?在線等6. javascript - 有什么比較好的網(wǎng)頁(yè)版shell前端組件?7. javascript - 求解答:實(shí)例對(duì)象調(diào)用constructor,此時(shí)constructor內(nèi)的this的指向?8. javascript - 如何將一個(gè)div始終固定在某個(gè)位置;無(wú)論屏幕和分辨率怎么變化;div位置始終不變9. css - chrome下a標(biāo)簽嵌套img 顯示會(huì)多個(gè)小箭頭?10. html - vue項(xiàng)目中用到了elementUI問(wèn)題
