国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

iis網(wǎng)站日志今日國(guó)際新聞?lì)^條新聞

iis網(wǎng)站日志,今日國(guó)際新聞?lì)^條新聞,主題網(wǎng)站開(kāi)發(fā)介紹,javaweb做視頻網(wǎng)站原理一個(gè)bug 在一個(gè)管理頁(yè)面,有一個(gè)非必填字段被設(shè)置成空了并提交更新,再次打開(kāi)的時(shí)候,發(fā)現(xiàn)字段還在,并沒(méi)有被更新成功。 使用的數(shù)據(jù)庫(kù)映射框架是 Mybatis-plus ,對(duì)于Mybatis 在更新字段的時(shí)候會(huì)對(duì)空進(jìn)行校驗(yàn),…

一個(gè)bug

在一個(gè)管理頁(yè)面,有一個(gè)非必填字段被設(shè)置成空了并提交更新,再次打開(kāi)的時(shí)候,發(fā)現(xiàn)字段還在,并沒(méi)有被更新成功。

使用的數(shù)據(jù)庫(kù)映射框架是 Mybatis-plus ,對(duì)于Mybatis 在更新字段的時(shí)候會(huì)對(duì)空進(jìn)行校驗(yàn),如果字段為 null,會(huì)被忽略加入 sql。

應(yīng)對(duì)策略

推薦策略:使用 UpdateWrapper (3.x)

使用 UpdateWrapper 或 LambdaUpdateWrapper

這是官方給出的案例

//updateAllColumnById(entity) // 全部字段更新: 3.0已經(jīng)移除
mapper.update(new User().setName("mp").setAge(3),Wrappers.<User>lambdaUpdate().set(User::getEmail, null) //把email設(shè)置成null.eq(User::getId, 2)
);
//也可以參考下面這種寫(xiě)法
mapper.update(null,Wrappers.<User>lambdaUpdate().set(User::getAge, 3).set(User::getName, "mp").set(User::getEmail, null) //把email設(shè)置成null.eq(User::getId, 2)
);

通過(guò)這種方式,可以達(dá)到將字段設(shè)置成 null 的效果。

其他策略(不推薦并且慎用)

在字段上增加了` @TableField(updateStrategy = FieldStrategy.IGNORED)`

在 DO 字段上添加這個(gè)更新策略,就是不會(huì)判斷 null,任何時(shí)候都加入 sql

特別注意:這個(gè)策略,在高級(jí)版本中已經(jīng)被 deprecated (3.5.3.2)

更新丟失風(fēng)險(xiǎn) FieldStrategy.ALWAYS

意味著在每次更新操作中,都會(huì)將實(shí)體對(duì)象中的所有字段值寫(xiě)入數(shù)據(jù)庫(kù),無(wú)論這些字段的值是否為 null

風(fēng)險(xiǎn)巨大。

有一張用戶(hù)表, 在 salary 上添加 FieldStrategy.ALWAYS

(id,name,age,salary)

開(kāi)發(fā)A:通過(guò) id 更新 age, 但是 DO 沒(méi)有設(shè)置 salary了,mybaits-plus 會(huì)添加 salary ,最終導(dǎo)致 salary 被更新為 null,導(dǎo)致數(shù)據(jù)丟失。

這種問(wèn)題如果不注意,后果十分嚴(yán)重,不建議在 DO 上添加此策略。隨著業(yè)務(wù)發(fā)展,人員變動(dòng),這種操作會(huì)給以后埋下隱患。

另外使用這種策略以后,對(duì)于批量更新簡(jiǎn)直噩夢(mèng)!慎重!

自定義 sql 方式

如果需要更復(fù)雜的邏輯來(lái)決定何時(shí)將字段設(shè)置為 null,可以選擇編寫(xiě)自定義的 XML 映射文件或者使用 @Select, @Update 等注解來(lái)定義 SQL 語(yǔ)句,在其中明確寫(xiě)出 SET column_name = NULL

其他策略(“曲線救國(guó)”)

如果是 String 類(lèi)型,可以設(shè)置成“”,例如: MapStruct 設(shè)置一個(gè)默認(rèn)值。

@Mappings({@Mapping(source = "name", target = "name", defaultValue = "")
})
UpdateParam convert(Request request);

結(jié)束

  1. 謹(jǐn)慎使用策略 FieldStrategy.ALWAYS/ FieldStrategy.IGNORED
  2. 更新使用 UpdateWrapper 或 LambdaUpdateWrapper
http://m.aloenet.com.cn/news/38789.html

相關(guān)文章:

  • 企業(yè)網(wǎng)站設(shè)計(jì)調(diào)查問(wèn)卷全國(guó)十大婚戀網(wǎng)站排名
  • 表格網(wǎng)站源碼企業(yè)網(wǎng)站seo點(diǎn)擊軟件
  • 網(wǎng)站轉(zhuǎn)移空間以后ip會(huì)變化嗎360網(wǎng)址大全
  • 商城網(wǎng)站建設(shè)招聘網(wǎng)站推廣方式有哪些
  • 學(xué)生管理系統(tǒng)seo英文
  • 合優(yōu)網(wǎng)合川招聘杭州排名優(yōu)化公司電話
  • 網(wǎng)站開(kāi)發(fā)工程師工作職責(zé)seo模擬點(diǎn)擊軟件
  • 長(zhǎng)沙房產(chǎn)交易中心官網(wǎng)丹東網(wǎng)站seo
  • 經(jīng)典網(wǎng)站首頁(yè)設(shè)計(jì)網(wǎng)絡(luò)營(yíng)銷(xiāo)評(píng)價(jià)的名詞解釋
  • 湖北省建設(shè)廳建筑資料官方網(wǎng)站360點(diǎn)睛實(shí)效平臺(tái)推廣
  • 電子商務(wù)公司營(yíng)業(yè)執(zhí)照經(jīng)營(yíng)范圍seo優(yōu)化步驟
  • 遼陽(yáng)專(zhuān)業(yè)建設(shè)網(wǎng)站公司電話新媒體營(yíng)銷(xiāo)策略有哪些
  • 做的比較簡(jiǎn)約的網(wǎng)站個(gè)人開(kāi)發(fā)app可以上架嗎
  • 石家莊一日游最佳景點(diǎn)天津關(guān)鍵詞優(yōu)化網(wǎng)站
  • 音樂(lè)網(wǎng)站建站發(fā)新聞稿平臺(tái)
  • 高性能網(wǎng)站建設(shè)進(jìn)階指南:web開(kāi)發(fā)者性能優(yōu)化最佳實(shí)踐重慶網(wǎng)站優(yōu)化軟件
  • 程序源代碼下載網(wǎng)站全球搜索引擎排行榜
  • 做網(wǎng)站注意哪些搜索引擎優(yōu)化的核心是
  • 有什么推薦做簡(jiǎn)歷的網(wǎng)站百度官網(wǎng)入口
  • 網(wǎng)站建立企業(yè)巨量千川廣告投放平臺(tái)
  • 問(wèn)題反饋的網(wǎng)站怎么做seo信息查詢(xún)
  • 蘇州響應(yīng)式網(wǎng)站建設(shè)進(jìn)入百度
  • 做本地網(wǎng)站賺錢(qián)嗎?2020最成功的網(wǎng)絡(luò)營(yíng)銷(xiāo)
  • 自己做網(wǎng)站出口關(guān)鍵詞優(yōu)化排名平臺(tái)
  • 跨境獨(dú)立站建站免費(fèi)手游推廣代理平臺(tái)渠道
  • 網(wǎng)站框架指的是什么百度公司推廣電話
  • 吉林省最新疫情最新消息優(yōu)化大師官網(wǎng)登錄入口
  • 滄州 網(wǎng)站建設(shè)鄭州seo外包顧問(wèn)
  • 學(xué)生靜態(tài)網(wǎng)頁(yè)模板成都百度seo公司
  • 做營(yíng)銷(xiāo)型網(wǎng)站公司蘇州優(yōu)化排名seo