Mybatis批量更新

2021-08-27 07:44:01 字數 2245 閱讀 9532

mybatis批量更新

批量操作就不進行贅述了。減少伺服器與資料庫之間的互動。網上有很多關於批量插入還有批量刪除的帖子。但是批量更新卻沒有詳細的解決方案。

這裡主要講的是1張table中。根據不同的id值,來update不同的property。

資料表:1張。tblsupertitleresult。錯題結果統計。

表結構:

表中每一條資料必須通過兩個欄位來確定:userhhcode+titleid

需要批量更新的字段是:correctdate,result,checkstate。

我用的資料庫是mysql。其他資料庫的sql語句也都大同小異。

sql:

update tblsupertitleresult set result =case

when (userhhcode=2001 and titleid=1)then  90

when (userhhcode=2001 and titleid=2)then  70

end,checkstate = case 

when (userhhcode=2001 and titleid=1)then  80

when (userhhcode=2001 andtitleid=2)then  120

endwhere (userhhcode=2001 and titleid=1) or(userhhcode=2001 and titleid=2)

關於這個批量更新的sql語句做乙個簡單的解釋。

要更新userhhcode=2001,titleid=1和userhhcode=2001 ,titleid=2的兩條資料。

當userhhcode=2001,titleid=1時,將result設定為90,checkstate設定為80

當userhhcode=2001,titleid=2時,將result設定為80,checkstate設定為120.

這裡,首先介紹實體類。

public

classwrongtitle and titleid=#) then #

if>

foreach

>

trim

>

<

trim

prefix=" correctdate =case"

suffix="end,"

>

<

foreach

collection="list"

item="i"

index="index"

>

<

iftest="i.correctdate!=null"

>

when (userhhcode=# and titleid=#) then #

if>

foreach

>

trim

>

<

trim

prefix="result =case"

suffix="end,"

>

<

foreach

collection="list"

item="i"

index="index"

>

<

iftest="i.result!=null"

>

when (userhhcode=# and titleid=#) then #

if>

foreach

>

trim

>

trim

>

where

<

foreach

collection="list"

separator="or"

item="i"

index="index"

>

(userhhcode =# andtitleid=#)

foreach

>

update

>

接下來就是dao:

public inte***cedatacenterdao

執行結果截圖:

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...