1. 程式人生 > >[MyBatis踩坑]正確執行sql並在控制檯列印,取值卻為[null]==>帶下劃線的欄位名

[MyBatis踩坑]正確執行sql並在控制檯列印,取值卻為[null]==>帶下劃線的欄位名

今天踩了個大坑。明明開啟了駝峰命名,但是寫User表明明能正確查出來有些過

但是列印卻是空,我百分之百確定我配置檔案沒有寫錯,但是單元測試通過卻還是空

我的實體類為

可以看到我用了下劃線……


public class User implements Serializable {

 private int u_id;
 private String u_name;
 private String u_realname;
 private String u_password;
 private String u_address;
 private String u_phone;

一開始以為掃描包的衝突,沒用,pass

以為是資料庫關鍵字衝突,改為users表,不行 pass

後來心血來潮,將欄位名改掉


public class Users {

 private Integer uid;
 private String uname;
 private String upassword;
 private String urealname;
 private String uaddress;
 private String uphone;

它就能正確顯示了……吐血……

據說:

mybatis配置檔案設定了這項後,查詢出來的欄位如果帶下劃線,那麼就會去掉下劃線,然後採用java駝峰規則。比如資料庫欄位Parent_id,那麼查詢出來後,會轉為parentid,然後去

實體類Category匹配對應的欄位。 因為你實體類裡有下劃線,所以匹配不上。要麼採用resultMap 要麼禁用掉駝峰規則(不建議禁用)。如果不想該實體類的話,建議採用resultMap。

所以,要麼

自定義resultMap

要麼,去掉下劃線。以上。