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。
推薦閱讀:
- Mybatis查詢時數據丟失的問題及解決
- 數據庫報錯:Unknown column 'xxx' in 'where clause'問題的解決過程
- Mybatis控制臺打印SQL語句的兩種方式實現
- MySQL圖形化管理工具Navicat安裝步驟
- mybatis-plus更新字段為null的處理方式