Mybatis如何解決屬性名和欄位名不一致的問題

2021-10-05 07:04:19 字數 1017 閱讀 1562

目錄

問題描述

方法一:在sql語句中起別名

方法二:resultmap(結果集對映)

方式三:mybatis全域性配置檔案中開啟駝峰命名規則

如果資料庫中的字段和實體類中的屬性不一致怎麼弄呢?

起別名看似很完美,但如果起別名的字段很多,sql語句就會非常臃腫

select id,name,pwd as password from mybatis.user where id = #
這種做法把sql中非必要的操作給轉移到標籤中。但是,如果連跨5個實體查5個表,就會非常的臃腫,對於優化方案會在後面的部落格中分享

select * from user where id = #

等等,之前我們講過resulttype=map,為什麼不用map的方式來對映呢?注意map只是簡單的將所有的列對映到hashmap的鍵上,如果你的程式使用到了pojo類,resulttype=map就不香了,為啥?因為map對映的是資料庫的列,你pojo類中的字段不一定和資料庫中的列是一致的呀。

resultmap的思想是resultmap==>pojo類==>資料庫

這種方式可以省掉下劃線。但除了下劃線,其他字母不能有錯

mybatis學習(四 解決屬性名和字段不一致)

新建乙個專案,使資料庫與實體類欄位名稱不一致 public class userselect from mybatis.user where id 型別處理器 如果實體類中有同名字段,直接將資料庫查詢與實體類屬性匹配 select id,name,pwd from mybatis.user wher...

如何解決mybatis查詢結果接收不同的問題

記一次大坑 mybatis查詢結果和接收的不一樣,折騰我好幾個小時.先上 是要查詢排名,sql執行的結果 select b.operator id,b.class count,b.class study,b.student count,b.rownum as rank,b.rownum as pr ...

解決Mybatis中的屬性名和欄位名不一致的問題

1 問題 2 新建乙個專案,寫實體類get set tostring 實體類 public class user public user int id,string name,string password public intgetid public void setid int id publi...