<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      新入職的干練小伙,把 MyBatis 替換成 MyBatis-Plus,被領導怒懟了...

      0
      分享至

      Java精選面試題(微信小程序):5000+道面試題和選擇題,包含Java基礎、并發、JVM、線程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架構設計、大廠真題等,在線隨時刷題!

      正文

      一個老項目,數據庫用的是 MySQL5.7.36, ORM 框架用的 MyBatis3.5.0, mysql-connector-java 版本是5.1.26

      新來了一個干練的小伙,精力充沛,看著就是一個喜歡折騰的主


      他就覺得 MyBatis 使用起來不夠簡單,要寫的代碼還比較多,覺得有必要替換成 MyBatis-Plus

      Mybatis-Plus替換Mybatis

      先準備一張表 tbl_order ,然后初始化 2 條數據


      為了簡化演示,我就直接用 Mybatis-Plus 搭建一個示例 demo ,以此來模擬下 "小伙" 替換的過程

      只是用 MyBatis-Plus 替換 MyBatis ,其他組件的版本暫不動

      Mybatis-Plus 版本就用 "小伙" 引用的版本:3.1.1, mysql-connector-java 版本保持不變還是5.1.26

      示例代碼:play_it_safe

      此時運行 com.qsl.OrderTest#orderListAllTest ,會報錯,異常信息如下

      注意看 Caused by


      不支持的轉換類型: java.time.LocalDateTime

      誰不支持? mysql-connector-java 不支持!

      那 mysql-connector-java 哪個版本支持了,答案是: 5.1.37


      升級mysql-connector-java

      將 mysql-connector-java 升級到 5.1.37 ,再執行下 com.qsl.OrderTest#orderListAllTest


      不再報異常,查詢結果也正確

      MyBatis-Plus 替換 Mybatis 似乎就完成了

      順的讓人有點懷疑


      Conversion not supported for type java.time.LocalDateTime

      我們再回過頭去看看前面說到的異常: Conversion not supported for type java.time.LocalDateTime

      Mybatis-Plus 替換 MyBatis 之前沒這個異常,替換之后就有了這個異常,這不是 Mybatis-Plus 的問題?

      如何找這個異常的根因了?

      很簡單,直接從異常堆棧入手


      點了之后,你會發現方法很簡單


      這么簡單的代碼能有什么問題?

      大家注意看圖中左上角 MyBatis 的版本,是3.5.1,并不是最初的 3.5.0

      有小伙伴可能會問了:不是用 MyBatis-Plus 替換了 MyBatis 嗎,怎么還有 Mybatis ?

      這個問題問的真的好,我只想給你個大嘴巴子


      你看下 MyBatis-Plus 的官方說明


      既然基于 Mybatis 3.5.0 沒有拋異常,而基于 3.5.1 拋了異常, LocalDateTimeTypeHandler 在 3.5.1 肯定做了調整

      我們來看下調整了什么?


      看出什么了?

      MyBatis 3.5.0 會處理 LocalDateTime 類型的轉換(將 java.sql.Timestamp 轉換成 java.time.LocalDateTime )

      然而,注意了,然而來了!!!

      然而從 MyBatis 3.5.1 開始,不再處理 LocalDateTime (還包括: LocalDate 、 LocalTime )類型的轉換

      而是交由 JDBC 組件,也就是 mysql-connector-java 來實現

      而巧的是, mysql-connector-java 5.1.26 不支持類型 LocalDateTime


      那它支持哪些類型了?

      我們同樣從異常堆棧入手


      點了之后,可以看到下圖


      往上滑動鼠標,就可以看到支持的類型了

      確實沒有 LocalDateTime 、 LocalDate 和 LocalTime

      mysql-connector-java 5.1.37 開始支持 LocalDateTime 、 LocalDate 和 LocalTime ,前面已經介紹過了,不再過多贅述

      總結下異常根因: MyBatis 3.5.1 開始不再處理 LocalDateTime 、 LocalDate 和 LocalTime 的轉換,而 mysql-connector-java 5.1.37 之前都不支持這些類型

      弄清楚這個異常的來龍去脈之后,順的是不是又理所當然一些了?

      暴風雨的來臨

      版本上線沒 2 天,該來的終究還是來了

      我們往表 tbl_order 中插入一條記錄: INSERT INTOtbl_orderVALUES (3, 'asdfgh', NULL, '2024-02-21 20:01:31.111', '2024-02-21 20:02:56.764');

      再執行 com.qsl.OrderTest#orderListAllTest


      此刻我就想問 "小伙" :刺不刺激?


      碰到了異常,那就找原因

      同樣從異常堆棧入手


      看出什么了?

      如果 getTimestamp(columnIndex) 得到的是 NULL ,不就 NullPointerException ? 嚴謹性了?

      修復問題要緊,我們先看哪個版本進行修復了?


      將 mysql-connector-java 升級到 5.1.42


      問題得以修復

      經此一役, "小伙" 似乎成長了很多,但眼里的光卻暗淡了不少

      mybatis-plus-issues-1114

      無意中看到了這個issue-1114,跟我們前面分析的 Conversion not supported for type java.time.LocalDateTime 是不是同一個問題?

      只是我們用到的數據庫連接池是默認的 HikariCP 而非 Druid

      結合druid/issues/3302來看,如果使用 Druid 作為數據庫連接池,出現的異常可能跟我們前面分析的確實不一樣

      所以大家需要根據自己的實際情況來分析,但針對異常的分析方法是通用的

      修了“不該修的Bug”

      這是我親身經歷的一次事故,到現在都覺得這鍋背的有點冤

      背景介紹

      文件分為主文件和附屬文件,主文件生成之后再生成附屬文件

      附屬文件生成的時候,會校驗其依賴的主文件是否都生成了,如果有任意一個主文件未生成,依賴文件不能生成并拋出異常

      這個業務還是比較簡單吧

      但在附屬文件校驗的優化上,我背上了生產事故

      優化前的校驗


      listFileGenerateLog 作用是根據參數查詢文件生成記錄,具體實現不用關注

      這個校驗邏輯是什么?只要有任意一個主文件生成,校驗就算通過了,與業務要求(主文件全部生成,才算校驗通過)不匹配呀

      這不是妥妥的 Bug ?


      優化后的校驗

      碰到 Bug 你能忍?我是忍不了一點,反手就是一個優化


      這是不是就符合業務要求了?

      生產異常

      中午升級之后,穩定運行了一段時間,期間文件正常生成,沒出現任何問題

      晚上 19 點,有個附屬文件生成失敗,異常提示: 依賴的資源[abc_{yyyyMMdd}.txt]未生成

      當時看到這個異常的第一眼,覺得既熟悉又陌生,熟悉的是這個異常信息的結構,陌生的是 abc_{yyyyMMdd}.txt ,這不是文件名嗎?

      正常來講應該是 fileId ,是一個自增的正整數呀,怎么會是文件名了?

      腦中瞬間閃過一個念頭:數據庫數據有問題?

      一查嚇一跳,這個附屬文件關聯主文件的字段值是: 4356,abc_{yyyyMMdd}.txt ,看最終修改時間是: 2021-08-21 15:22:12.652

      4356 文件的文件名就是 abc_{yyyyMMdd}.txt ,正常來講,這個關聯字段的值應該是: 4356

      敢情這個 校驗Bug 完美的兼容了這個臟數據 ,所以幾年了,一直沒出現異常


      是不是有這味了?

      這可倒好,我把 Bug 修好,還出現問題了,你說我是不是手賤?

      經此一役,我眼里的光又暗淡了些許

      總結

      關于對組件的升級,或者對舊代碼的調整,都有可能牽一發動全身,影響甚大

      我的觀點是:能不動就不要動,改好沒績效,改出問題要背鍋,吃力不討好,又不是不能跑

      如果到了不得不改的地步了,那就需要全面的測試。

      來自:https://www.cnblogs.com/youzhibing/p/18019399

      公眾號“Java精選”所發表內容注明來源的,版權歸原出處所有(無法查證版權的或者未注明出處的均來自網絡,系轉載,轉載的目的在于傳遞更多信息,版權屬于原作者。如有侵權,請聯系,筆者會第一時間刪除處理!

      最近有很多人問,有沒有讀者交流群!加入方式很簡單,公眾號Java精選,回復“加群”,即可入群!

      文章有幫助的話,點在看,轉發吧!

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      水貨實錘?才一年就全面下滑,這可是狀元啊,老鷹虧大發了

      水貨實錘?才一年就全面下滑,這可是狀元啊,老鷹虧大發了

      球童無忌
      2025-12-20 23:40:16
      輸吉林發布會!劉煒將防守甩鍋納托爾,不滿籃板,西爾扎提談失誤

      輸吉林發布會!劉煒將防守甩鍋納托爾,不滿籃板,西爾扎提談失誤

      籃球資訊達人
      2025-12-21 02:56:57
      停飛中國航班,拒絕中國游客,這個在東南亞小國”處處和中國作對

      停飛中國航班,拒絕中國游客,這個在東南亞小國”處處和中國作對

      南權先生
      2025-12-20 17:01:37
      68歲青島市人大常委會原主任被查,今年已有61名中管干部落馬

      68歲青島市人大常委會原主任被查,今年已有61名中管干部落馬

      上觀新聞
      2025-12-19 18:57:02
      寧波衛健委回應小洛熙事件最新進展:醫療事故鑒定仍在進行

      寧波衛健委回應小洛熙事件最新進展:醫療事故鑒定仍在進行

      極目新聞
      2025-12-20 19:49:35
      北京阿姨20年守茅臺股票:90萬本金,分紅326萬,成本歸零!

      北京阿姨20年守茅臺股票:90萬本金,分紅326萬,成本歸零!

      趣文說娛
      2025-12-20 18:29:20
      2026央視跨年晚會陣容曝光,看完明星名單難掩激動,該來的都來了

      2026央視跨年晚會陣容曝光,看完明星名單難掩激動,該來的都來了

      阿纂看事
      2025-12-19 14:38:58
      僅差32次!僅差45個!老詹迎來兩項神級里程碑,愈老愈妖

      僅差32次!僅差45個!老詹迎來兩項神級里程碑,愈老愈妖

      世界體育圈
      2025-12-20 13:22:08
      掛斷中方電話后,馬杜羅下令出兵,油輪保衛戰打響,白宮措辭變強

      掛斷中方電話后,馬杜羅下令出兵,油輪保衛戰打響,白宮措辭變強

      策前論
      2025-12-20 23:12:33
      12架日機攜48導彈直撲遼寧艦,美媒直接報喪:被解放軍全面碾壓?

      12架日機攜48導彈直撲遼寧艦,美媒直接報喪:被解放軍全面碾壓?

      科普100克克
      2025-12-16 16:26:18
      央企“最牛女副處長”落馬:兩年與上司開房410次,細節曝光

      央企“最牛女副處長”落馬:兩年與上司開房410次,細節曝光

      西門老爹
      2025-12-16 15:35:31
      普京拒付金正恩派兵報酬,因朝鮮軍隊戰績不佳,僅支付20%報酬

      普京拒付金正恩派兵報酬,因朝鮮軍隊戰績不佳,僅支付20%報酬

      環球熱點快評
      2025-12-17 09:19:03
      上海一對情侶戀愛時男方說“我養你”,分手后女方以此為證,拒絕返還40余萬元!測謊實驗后,法院判了

      上海一對情侶戀愛時男方說“我養你”,分手后女方以此為證,拒絕返還40余萬元!測謊實驗后,法院判了

      都市快報橙柿互動
      2025-12-20 09:35:12
      商K上線了新花樣…

      商K上線了新花樣…

      微微熱評
      2025-12-20 15:22:00
      明宣宗朱瞻基陵墓,下周一開放

      明宣宗朱瞻基陵墓,下周一開放

      上觀新聞
      2025-12-20 16:31:19
      市監局通報“南極磷蝦油”事件:已成立聯合調查組進駐北京同仁堂(四川)健康藥業有限公司開展調查,已對該企業立案

      市監局通報“南極磷蝦油”事件:已成立聯合調查組進駐北京同仁堂(四川)健康藥業有限公司開展調查,已對該企業立案

      極目新聞
      2025-12-20 19:28:56
      國乒教練組巨震,林詩棟新教練讓人意外,王曼昱主管教練情理之中

      國乒教練組巨震,林詩棟新教練讓人意外,王曼昱主管教練情理之中

      月亮的麥片
      2025-12-20 21:18:01
      繼父、同母異父弟弟?墜亡女教師身世曝光,這才是她走絕路的真相

      繼父、同母異父弟弟?墜亡女教師身世曝光,這才是她走絕路的真相

      知法而形
      2025-12-19 23:33:57
      1984年他一聲令下,把老山幾千噸炮彈當水潑,2019年葬禮現場,昔日部下已是軍委副主席,含淚送別這位鐵血師長!

      1984年他一聲令下,把老山幾千噸炮彈當水潑,2019年葬禮現場,昔日部下已是軍委副主席,含淚送別這位鐵血師長!

      史海孤雁
      2025-12-17 16:50:24
      凡人微光 | “童”行有你

      凡人微光 | “童”行有你

      新華社
      2025-12-20 13:14:20
      2025-12-21 05:43:00
      Java精選
      Java精選
      一場永遠也演不完的戲
      1764文章數 3859關注度
      往期回顧 全部

      科技要聞

      許四清:具身智能的"ChatGPT時刻"還未到來

      頭條要聞

      高市早苗擔心被邊緣化 要趕在特朗普訪華前行動

      頭條要聞

      高市早苗擔心被邊緣化 要趕在特朗普訪華前行動

      體育要聞

      我開了20年大巴,現在是一名西甲主帥

      娛樂要聞

      2026央視跨年晚會陣容曝光,豪華陣仗

      財經要聞

      求解“地方財政困難”

      汽車要聞

      嵐圖推進L3量產測試 已完成11萬公里實際道路驗證

      態度原創

      房產
      教育
      家居
      游戲
      親子

      房產要聞

      廣州有態度,一座國際化社區給出的城市答案

      教育要聞

      中產留學家庭起飛三件套!

      家居要聞

      高端私宅 理想隱居圣地

      逆天!LCK頒獎Faker無緣獎項,LPL解說炮轟開罵直播間差點被封

      親子要聞

      張柏芝小兒子罕見露臉,網友驚呼太像媽媽,三個兒子各有千秋

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 国产精品理论片| 狠狠撸狠狠插| 日韩伦理片| 国产毛a片啊久久久久久保和丸| 亚洲精品久久久久国色天香| 中文字幕亚洲综合久久菠萝蜜| AV无码人妻| 久久久亚洲精品成人| 国产色精品久久人妻| 色噜噜狠狠一区二区三区Av蜜芽| 国产精品亚洲综合久久小说| 国产成人av性色在线影院| 人妻综合页| 亚洲天堂中文字幕| 伊人精品成人久久综合97| 日韩成人无码| 66av在线| 亚洲欧美综合| 99视频在线精品免费观看6| 777米奇影视第四色| 沁水县| 久久天堂无码av网站| 国产精品理论片| 久章草在线精品视频免费观看| 浪荡干片网在线观看| 97精品国产91久久久久久久| 欧美疯狂xxxxbbbb喷潮| 黑人AV无码| 欧美色综合| 国产午夜片无码区在线播放| 97人妻精品一区二区三区| 国产999| 成人免费在线播放av| 欧美色aⅴ欧美综合色| 亚洲狠狠婷婷综合久久久| 亚洲中文字幕乱码av波多ji| 日韩AV高清在线看片| 色噜噜狠狠一区二区三区果冻| 四季AV一区二区夜夜嗨| 精品一区二区三区在线观看| 国内av网站|