MyBatis查詢時(shí)屬性名和字段名不一致問(wèn)題的解決方法
問(wèn)題
當(dāng)我們數(shù)據(jù)庫(kù)中的字段和實(shí)體類(lèi)中的字段不一致的時(shí)候,查詢會(huì)出問(wèn)題
數(shù)據(jù)庫(kù)字段是 pwd
id name pwd 1 張三 123456 2 李四 123456 3 王五 123456 4 趙六 123456
實(shí)體類(lèi)字段是 password
public class User {
private int id;
private String name;
private String password;
}
查出來(lái)結(jié)果發(fā)現(xiàn), password 是 null
User{id=1, name='張三', password='null'}
User{id=2, name='李四', password='null'}
User{id=3, name='王五', password='null'}
User{id=4, name='趙六', password='null'}
原因是類(lèi)型處理器
select * from user // 類(lèi)型處理器:我們查詢 select * 實(shí)際是查詢 select id,name,pwd select id,name,pwd from user
解決辦法
- resultMap:結(jié)果集映射
- sql起別名
select id,name,pwd as password from user
解決方案:resultMap
結(jié)果集映射:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps
- resultMap 元素是 MyBatis 中最重要最強(qiáng)大的元素
- ResultMap 的設(shè)計(jì)思想是,對(duì)簡(jiǎn)單的語(yǔ)句做到零配置,對(duì)于復(fù)雜一點(diǎn)的語(yǔ)句,只需要描述語(yǔ)句之間的關(guān)系就行了
我們只需要在Mapper.xml 中加入結(jié)果集映射即可,且只加需要映射的字段即可
<mapper namespace="com.pro.dao.UserMapper"> <!--id: 下面select語(yǔ)句中resultMap綁定的(標(biāo)識(shí)符/名稱), type: 我們的實(shí)體類(lèi)--> <resultMap id="UserMap" type="User"> <!--column: 對(duì)應(yīng)數(shù)據(jù)庫(kù)中的字段, property: 對(duì)應(yīng)實(shí)體類(lèi)中的屬性--> <result column="pwd" property="password"/> </resultMap> <select id="getUserList" resultMap="UserMap"> select * from users </select> </mapper>
總結(jié)
到此這篇關(guān)于MyBatis查詢時(shí)屬性名和字段名不一致問(wèn)題解決的文章就介紹到這了,更多相關(guān)MyBatis查詢時(shí)屬性名和字段名不一致內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot調(diào)用第三方WebService接口的兩種方法
本文主要介紹了SpringBoot調(diào)用第三方WebService接口的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
輸出java進(jìn)程的jstack信息示例分享 通過(guò)線程堆棧信息分析java線程
通過(guò)ps到j(luò)ava進(jìn)程號(hào)將進(jìn)程的jstack信息輸出。jstack信息是java進(jìn)程的線程堆棧信息,通過(guò)該信息可以分析java的線程阻塞等問(wèn)題。2014-01-01
JAVA中的延遲隊(duì)列DelayQueue應(yīng)用解析
這篇文章主要介紹了JAVA中的延遲隊(duì)列DelayQueue應(yīng)用解析,DelayQueue是一個(gè)根據(jù)元素的到期時(shí)間來(lái)排序的隊(duì)列,而并非是一般的隊(duì)列那樣先進(jìn)先出,最快過(guò)期的元素排在隊(duì)首,越晚到期的元素排得越后,需要的朋友可以參考下2023-12-12
Spring中BeanFactory?FactoryBean和ObjectFactory的三種的區(qū)別
關(guān)于FactoryBean?和?BeanFactory的對(duì)比文章比較多,但是對(duì)ObjectFactory的描述就比較少,今天我們對(duì)比下這三種的區(qū)別,感興趣的朋友跟隨小編一起看看吧2023-01-01
使用spring oauth2框架獲取當(dāng)前登錄用戶信息的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用spring oauth2框架獲取當(dāng)前登錄用戶信息的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Windows下使用Graalvm將Springboot應(yīng)用編譯成exe大大提高啟動(dòng)和運(yùn)行效率(推薦)
這篇文章主要介紹了Windows下使用Graalvm將Springboot應(yīng)用編譯成exe大大提高啟動(dòng)和運(yùn)行效率,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
Lombok @Slf4j log對(duì)象沒(méi)有info等方法不可用問(wèn)題及解決
本文主要介紹了如何解決Spring Boot項(xiàng)目中的日志依賴沖突問(wèn)題,以及如何使用Lombok和SLF4J進(jìn)行日志記錄,Lombok通過(guò)生成Logger對(duì)象簡(jiǎn)化了日志記錄,而SLF4J提供了一個(gè)統(tǒng)一的日志接口,允許開(kāi)發(fā)者在運(yùn)行時(shí)選擇不同的日志實(shí)現(xiàn)2024-12-12
java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解
這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)圖論霍夫曼樹(shù)及其編碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11

