mybatis 批量更新

2021-09-26 04:45:04 字數 1615 閱讀 5687

參考文章:

最近用到了批量更新操作,網路了一下,具體採用了下面的方式。

目前沒有考慮執行效率。

update warehouse_inventory

when id=# then #

when id=# then #

when id=# then #

when id=# then #

when id=# then now()

id = #

integer checkbatchupdate(@param("list") listlist);
我這裡list設定兩條資料ids【354910763363991553,354910763368185857】,最後轉換後的sql:

2019-08-15 19:04:24 [main] debug c.r.s.w.m.w.checkbatchupdate - ==> parameters: 354910763363991553(long), 100(bigdecimal), 354910763368185857(long), 100(bigdecimal), 354910763363991553(long), 100(bigdecimal), 354910763368185857(long), 100(bigdecimal), 354910763363991553(long), 0.00(bigdecimal), 354910763368185857(long), 0.00(bigdecimal), 354910763363991553(long), 0.00(bigdecimal), 354910763368185857(long), 0.00(bigdecimal), 354910763363991553(long), 354910763368185857(long), 354910763363991553(long), 354910763368185857(long)

2019-08-15 19:04:24 [main] debug c.r.s.w.m.w.checkbatchupdate - <== updates: 2

這裡還用到了on duplicate key update,作用:沒有新增,有則更新。

insert into warehouse_inventory

values

(#,#,

#,#,

#,#,

#,#,

#,#,

now(),

#,#,#)

on duplicate key update frozen_store = (case

when id = # then

frozen_store + #

end),

total_store = (case

when id = # then

total_store + #

end),

update_user = (case

when id = # then

#end),

update_time = (case

when id = # then

now()

end)

Mybatis批量更新

mybatis批量更新 批量操作就不進行贅述了。減少伺服器與資料庫之間的互動。網上有很多關於批量插入還有批量刪除的帖子。但是批量更新卻沒有詳細的解決方案。這裡主要講的是1張table中。根據不同的id值,來update不同的property。資料表 1張。tblsupertitleresult。錯題...

mybatis 批量更新

mybatis批量更新 批量操作就不進行贅述了。減少伺服器與資料庫之間的互動。網上有很多關於批量插入還有批量刪除的帖子。但是批量更新卻沒有詳細的解決方案。這裡主要講的是1張table中。根據不同的id值,來update不同的property。資料表 1張。tblsupertitleresult。錯題...

MyBatis批量更新

批量更新時一條記錄update一次,效能比較差,容易造成阻塞。mysql沒有提供直接的方法來實現批量更新,但可以使用case when語法來實現這個功能。update course set name case id when 1 then name1 when 2 then name2 when 3...