[MyBatis踩坑]正確執行sql並在控制檯列印,取值卻為[null]==>帶下劃線的欄位名
阿新 • • 發佈:2019-02-05
今天踩了個大坑。明明開啟了駝峰命名,但是寫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
要麼,去掉下劃線。以上。