Mybatis插入NULL值異常分析

分析場景發生在上周四需求迭代上線,因本次需求新增表,Dao層的Mapper文件都是新建的,表中有幾個字段是可空的。由于QA測試腳本出現了問題,測試時該字段傳的是空串,測試通過。但是當上線的時候插入空NULL值發現Mybatis拋出了異常。

異常信息如下圖:

異常信息打印

通過查庫確認字段是可空之后,又去Mapper文件中查找問題,發現在Insert語句中未指定字段的類型,所以當我們插入NULL值的時候,MyBatis不知道該參數的類型是什么,無法找到要轉換的對應數據庫的字段類型,于是拋出上圖的異常信息。正確的做法是:無論該參數是否可以為空,都在Mapper文件中指定該參數的類型,必要的時候還需要加入if標簽來做非空判斷,使代碼更加嚴謹,下面是正確的示例和錯誤的示例。

正確的示例
錯誤的示例
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優秀的...
    笨鳥慢飛閱讀 5,583評論 0 4
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,886評論 18 139
  • 先說說什么是鏡像(image),什么是容器吧? 這兩者有點像《奇異博士》里的那個鏡像。鏡像就是虛擬出來的世界, ...
    bboymonk閱讀 62評論 0 0
  • 文/王大純 北京是糖豆姑娘一個人的北京,她等的那個人沒有來,或許已經來了。 四年前,糖豆姑娘從小城坐了一夜的火車,...
    王大純閱讀 6,206評論 24 44
  • 序 孫莘老識歐陽文忠公,嘗乘間從,以文字問之,云:“無它術,唯勤讀書而多為之,自工。世人患作文字少,又懶讀書,每一...
    Uri閱讀 1,604評論 3 5