日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

mybatis update更新字段的使用操作

瀏覽:25日期:2023-10-20 11:05:15

多個mapper方法,更新單字段

說實話不太推薦,因為如果有10個字段要更新,難道寫10個方法。

但是實際中很多人都這么寫。

通用mapper方法,java代碼控制字段

特點是一個mapper方法包含所有字段,不為空的就update。

但是需要控制入參,一般有2中方式:

new 一個對象然后set id和要改的字段

如果字段多比較費勁,需要一個一個set。

查詢出對象,然后set要改的字段

這2種方式差不多,就是代碼看起來不一樣。

特別注意,定位字段不要加if

要更新的字段加if沒有什么問題

但是定位條件不要加if,因為萬一忘記傳遞了,變成沒有where條件,那么條數不可控了。搞不好把全表更新了,可就萬劫不復了。

補充:mybatis執行批量更新update

目前想批量更新,如果update的值是相同的話,很簡單,

update table set column=’...’ where id in (1,2,3)l

這樣的sql就可以了。Mybatis中這樣寫就行

<update parameterType='java.util.Map' > UPDATE STUDENT SET name = #{name} WHERE id IN <foreach collection='idList' index='index' item='item' open='(' separator=',' close=')'> #{item} </foreach></update>

但是這樣的需求很少,一般是有個集合,每個元素中的值是不一樣的,然后需要一次性更新。一般的處理方式是使用for循環。這樣的效率較低,當數據量大時,期望有種一次性插入的操作。如果使用的是mysql,有

insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo) on duplicate key update

replace into table (aa,bb,cc) values(xxx,xxx,xxx),(ooo,ooo,ooo),(ccc,ccc,ccc)

兩種方式可以處理。

當前數據庫是oracle,可以使用case when來拼成一長串sql處理

UPDATE mytable SET myfield = CASE id WHEN 1 THEN ’value’ WHEN 2 THEN ’value’ WHEN 3 THEN ’value’ ENDWHERE id IN (1,2,3)

實際上這種方式對于mysql也有效。

最開始的時候,想著寫一系列并列的更新語句就可以了

<update parameterType='java.util.List'><foreach collection='list' item='item' index='index' separator=';' open='' close=''> update REGION_CODE set CODE=#{item.Code,jdbcType=VARCHAR}, NAME=#{item.Name,jdbcType=VARCHAR} where ID = #{item.id,jdbcType=DECIMAL}</foreach></update>

這樣直接報錯,因為Mybatis映射文件中的sql語句不允許 ; 符號。

兩種方法:

第一種:需要在db鏈接url后面帶一個參數 &allowMultiQueries=true

即:

jdbc:mysql://localhost:3306/mysqlTest?characterEncoding=utf-8&allowMultiQueries=true

第二種:按照可行的case when處理方式,Mybatis映射文件書寫方式如下:

<update parameterType='java.util.List'> update REGION_CODE set CODE= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=DECIMAL} then #{item.Code,jdbcType=VARCHAR} </foreach> ,NAME= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=DECIMAL} then #{item.Name,jdbcType=VARCHAR} </foreach> where ID in <foreach collection='list' index='index' item='item' separator=',' open='(' close=')'> #{item.id,jdbcType=DECIMAL} </foreach></update>

至此,批量更新功能完成。

項目中實際使用案例:

<update parameterType='java.util.List'> update user_credit_black_list set type= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=BIGINT} then #{item.type,jdbcType=VARCHAR} </foreach> ,user_id= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=BIGINT} then #{item.userId,jdbcType=BIGINT} </foreach> ,update_time= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=BIGINT} then #{item.updateTime,jdbcType=TIMESTAMP} </foreach> ,delete_flg= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=BIGINT} then #{item.deleteFlg,jdbcType=BIT} </foreach> ,update_code= <foreach collection='list' item='item' index='index' separator=' ' open='case ID' close='end'> when #{item.id,jdbcType=BIGINT} then #{item.updateCode,jdbcType=BIGINT} </foreach> where ID in <foreach collection='list' index='index' item='item' separator=',' open='(' close=')'> #{item.id,jdbcType=BIGINT} </foreach> </update>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美日韩精品视频| 视频一区日韩精品| 久久国产精品色av免费看| 中文字幕一区日韩精品| 亚洲综合不卡| 日韩影院免费视频| 亚洲一区二区三区在线免费| 免费看黄色91| 中文字幕av亚洲精品一部二部| 欧美日韩国产综合网| 日韩在线免费| 在线亚洲人成| 欧美色图国产精品| 国产精品毛片在线| 玖玖精品视频| 日韩福利在线观看| 国产精品videosex极品| 精品国产亚洲一区二区三区| 98精品久久久久久久| 香蕉人人精品| 视频在线观看一区| 日韩av成人高清| 久久精品国产精品亚洲毛片| 黄色在线观看www| 999久久久亚洲| 99精品电影| 另类激情亚洲| 国产人成精品一区二区三| 91视频一区| 欧美日韩精品一本二本三本 | 1000部精品久久久久久久久| 久久天堂成人| 99xxxx成人网| 日韩av三区| 国产精成人品2018| 久久国产直播| 久久亚洲不卡| 国产高清精品二区| 久久久久网站| 日韩中文字幕91| 国产亚洲字幕| 国产 日韩 欧美一区| 国产亚洲在线观看| 国产精品嫩草影院在线看| 播放一区二区| 亚洲人成网77777色在线播放| 另类小说一区二区三区| 久久国产免费| 欧美精品影院| 免费欧美一区| 国产精品高清一区二区| 欧美日韩精品免费观看视欧美高清免费大片| 亚洲激情不卡| 国产精品porn| 亚洲成av人片一区二区密柚| 亚洲精品少妇| 久久影院午夜精品| 视频一区中文字幕精品| 欧美日韩视频免费观看| 亚洲精品国产日韩| sm捆绑调教国产免费网站在线观看| 亚洲免费一区二区| 老司机精品视频网| 模特精品在线| 日韩欧美国产精品综合嫩v| 日本亚洲不卡| 亚洲www免费| 欧美日韩精品一区二区三区在线观看| 九色porny丨国产首页在线| 美国三级日本三级久久99| 久久久久伊人| 日韩精品一二三区| 日韩电影免费网址| 日本特黄久久久高潮| 日韩不卡手机在线v区| 激情六月综合| 精品国产一级| 日韩精品欧美成人高清一区二区| 亚洲成av人片一区二区密柚| 国产美女亚洲精品7777| 国产精品99一区二区三| 日韩avvvv在线播放| 在线视频免费在线观看一区二区| 成人在线观看免费视频| 免费观看在线色综合| 亚洲va中文在线播放免费| 国产精品一区亚洲| 亚洲影视一区二区三区| 国内精品福利| zzzwww在线看片免费| 国产精品久久久亚洲一区| 天堂成人免费av电影一区 | 欧美日韩精品一区二区三区在线观看| 91精品一区国产高清在线gif| 欧美经典一区| 日本91福利区| 在线综合欧美| 欧美粗暴jizz性欧美20| 欧美成人a交片免费看| 国产精品黄网站| 亚洲精品影视| 蜜桃一区二区三区在线观看| 不卡在线一区| 久久久五月天| 日韩国产综合| 色欧美自拍视频| 国产丝袜一区| 欧美一区二区三区免费看| 亚洲欧美网站在线观看| 野花国产精品入口| 午夜精品亚洲| 久久久久久美女精品| 快播电影网址老女人久久| yellow在线观看网址| 日韩av二区| 久久久久免费| 久久久久久久欧美精品| 999国产精品永久免费视频app| 在线看片福利| 国产夫妻在线| 日韩理论片av| 日韩av一级| 亚洲午夜黄色| 狠狠色狠狠色综合日日tαg| 99久久精品费精品国产| 丝袜美腿一区| 秋霞影院一区二区三区| 亚洲不卡系列| 视频福利一区| 久久免费大视频| 91成人网在线观看| 亚洲激情二区| 六月婷婷一区| 亚洲综合图色| 日韩三级视频| 久久精品99国产精品| 国产精品久久777777毛茸茸| 久久久久久亚洲精品美女| 国产va免费精品观看精品视频| 久久精品国产在热久久| 色乱码一区二区三区网站| 国产在线观看www| 久久在线免费| 日韩专区欧美专区| 69堂免费精品视频在线播放| 国产激情综合| 国产精品黑丝在线播放| 国产在线|日韩| 亚洲精品va| 日本中文字幕一区二区| 国产精品成人自拍| 97精品一区二区| 欧美a级片一区| 热久久免费视频| 日韩一区二区三区精品视频第3页| 日韩精品a在线观看91| 久久中文字幕一区二区三区| а√在线中文在线新版| 欧美日韩国产高清电影| 日本91福利区| 精品视频99| 一区二区三区四区在线看| 蜜桃av一区二区三区电影| 久久国产人妖系列| 欧美xxxx中国| 国精品一区二区| 日韩欧美激情电影| 精品香蕉视频| 五月天久久网站| 亚洲一区二区日韩| 日韩精品91亚洲二区在线观看| 国产精品国码视频| 久久九九精品| 日韩美女国产精品| 国产精品日本一区二区三区在线| 亚洲伦乱视频| 日本在线不卡视频| 在线看片国产福利你懂的| 视频一区二区欧美| 日韩精品视频一区二区三区| 电影91久久久| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品啊啊啊| 婷婷久久一区| 日韩精品视频网站| 中文另类视频| 青草国产精品| 婷婷成人综合| 国产精品第一| 亚洲免费精品| 成人污污视频| 蜜臀va亚洲va欧美va天堂| 国产精品毛片aⅴ一区二区三区| 亚洲一级影院| 欧美国产极品| 久久亚洲色图| 日韩另类视频| 久久福利在线| 三级一区在线视频先锋| 高清一区二区三区|