mybatis查詢到瞭數據,但是實體類個別字段為null問題

mybatis查詢數據,實體類個別字段為null

今天在做一個簡單的查詢操作時遇到的坑,折騰瞭好久好久,有必要記錄一下本菜雞的心理活動

debug單步執行發現查詢之後有幾個字段沒有映射成功,依然為null

在這裡插入圖片描述

而控制臺打印的sql語句確實拿到瞭

在這裡插入圖片描述

想著是不是實體類裡面的字段命名不一致,瞪大狗眼看瞭一萬遍也沒發現有啥不一樣。

又試著在set方法裡設斷點,發現set方法執行瞭,但是傳進來是空。。靈異瞭。。

最終的最終發現

mybatis的配置文件裡自己整瞭那麼一句。。。

在這裡插入圖片描述

查詢的數據中有幾個列為null 封裝不上

sql語句查詢存在的列顯示不存在

環境:java web 項目 sql工具 navicat

問題

同事的代碼查詢出的數據總是有兩個列的數據為null, 在排查封裝的returnMap和實體類之後發現無誤 ,後再Navicat 工具使用sql查詢 發現根據列查詢數據時 其中的幾個列名為Unknown

(自己做的演示表)

數據

在這裡插入圖片描述

看著表查詢(看似語句正確,其實他報錯瞭 找不到name列)

在這裡插入圖片描述

然後Navicat 查看表的設計查詢 name列看似一切正常

在這裡插入圖片描述

我將表轉儲為sql文件 打開發現 name的單引號換行瞭

在這裡插入圖片描述

然後在nativcat上點擊name 往左移發現name沒見瞭

在這裡插入圖片描述

在刪除字段重建之後發現可以查詢瞭

在sqlyog 上查看表一明確的發現前空格問題

在這裡插入圖片描述

查看表的設計結構也會發現name列沒有顯示

在這裡插入圖片描述

小結一下

因為在創建列名前添加瞭空格 navicat上是不會顯示的所以誤是正確的列名 但如果你是sqlyog會發現這些問題

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: