Mybatis查詢時數據丟失的問題及解決
Mybatis查詢時數據丟失
公司裡的實體類和mapper文件均由mybatis逆向工程生成
之前使用myabtis查詢時直接使用註解@select(……)時遇到瞭一個問題。
結果顯示數據庫查詢沒有問題,但是有的數據缺沒有插入到指定的字段中,如下圖中ID成功存儲,Z40_ID,Z40_103到Z40_113均失敗。
經過排查得出結論
如果數據庫命名很規范比如user_name,用逆向插件生成實體類時該字段會自動轉換為userName
但是如果數據庫命名形式為:字母(含數字)_字母(含數字)這種情況,自動映射就會失效,就會發生部分數據沒有set到指定屬性下;
解決辦法
對於一些命名不規范的列需要加上註解手動映射
或者直接在mapper.xml文件裡用xml方式寫sql語句,一般逆向工程都自動生成列的映射規范瞭;
Mybatis查詢部分字段漏查問題(mysql)
select xx1字段 xx2字段 xx3字段 from A表 where 條件
在查詢的時候出現xx1字段的值和xx2的,xx3沒出來,
1.(數據庫字段是否有值?若無加一下值重啟再試一下)
2.將sql語句放到SQLyog 或者Navicat for MySQL 等mysql工具進行查詢,先確保語句得出結果沒有問題23.3
3.若此時無問題,大部分因為數據庫字段使用瞭一些敏感的外鍵字段,可適當修改一下這些健的名稱
(記得對應實體類,mybatis語句也要跟著修改)數據庫加入數據值 保存,重新啟動程序.
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- mybatis查詢到瞭數據,但是實體類個別字段為null問題
- spring boot寫java web和接口
- 解讀Mapper與Mapper.xml文件之間匹配的問題
- Mybatis常見註解有哪些(總結)
- 解決mybatis #{}無法自動添加引號的錯誤