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。

推薦閱讀: