Mybatis實(shí)體類(lèi)屬性與數(shù)據(jù)庫(kù)不一致解決方案
當(dāng)實(shí)體類(lèi)屬性和數(shù)據(jù)庫(kù)不一致時(shí),使用mybatis查詢(xún)數(shù)據(jù)庫(kù)返回實(shí)體類(lèi)自動(dòng)封裝就會(huì)出現(xiàn)問(wèn)題。針對(duì)這種情況,有兩種解決方案。
1、使用別名查詢(xún)
<!-- 配置查詢(xún)所有操作 --> <select id="findAll" resultType="com.itheima.domain.User"> select id as userId,username as userName,birthday as userBirthday, sex as userSex,address as userAddress from user </select>
優(yōu)點(diǎn):查詢(xún)效率高
缺點(diǎn):如果我們的查詢(xún)很多,都使用別名的話(huà)寫(xiě)起來(lái)很麻煩
2、定義resultMap
resultMap 標(biāo)簽可以建立查詢(xún)的列名和實(shí)體類(lèi)的屬性名稱(chēng)不一致時(shí)建立對(duì)應(yīng)關(guān)系。從而實(shí)現(xiàn)封裝。在 select 標(biāo)簽中使用 resultMap 屬性指定引用即可。同時(shí) resultMap 可以實(shí)現(xiàn)將查詢(xún)結(jié)果映射為復(fù)雜類(lèi)型的 pojo,比如在查詢(xún)結(jié)果映射對(duì)象中包括 pojo 和 list 實(shí)現(xiàn)一對(duì)一查詢(xún)和一對(duì)多查詢(xún)。
<!-- 建立User實(shí)體和數(shù)據(jù)庫(kù)表的對(duì)應(yīng)關(guān)系 type屬性:指定實(shí)體類(lèi)的全限定類(lèi)名 id屬性:給定一個(gè)唯一標(biāo)識(shí),是給查詢(xún)select 標(biāo)簽引用的。--> <resultMap type="com.itheima.domain.User" id="userMap"> <id column="id" property="userId"/> <result column="username" property="userName"/> <result column="sex" property="userSex"/> <result column="address" property="userAddress"/> <result column="birthday" property="userBirthday"/> </resultMap> <!--id 標(biāo)簽:用于指定主鍵字段 result 標(biāo)簽:用于指定非主鍵字段 column 屬性:用于指定數(shù)據(jù)庫(kù)列名 property 屬性:用于指定實(shí)體類(lèi)屬性名稱(chēng)--> <!-- 配置查詢(xún)所有操作--> <select id="findAll" resultMap="userMap"> select * from user </select>
優(yōu)點(diǎn):代碼書(shū)寫(xiě)簡(jiǎn)潔,提高開(kāi)發(fā)效率
缺點(diǎn):查詢(xún)效率低
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java繼承方法重寫(xiě)實(shí)現(xiàn)原理及解析
這篇文章主要介紹了Java繼承方法重寫(xiě)實(shí)現(xiàn)原理及解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
java鎖機(jī)制ReentrantLock源碼實(shí)例分析
這篇文章主要為大家介紹了java鎖機(jī)制ReentrantLock源碼實(shí)例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
責(zé)任鏈模式在spring security過(guò)濾器鏈中的應(yīng)用小結(jié)
責(zé)任鏈模式在SpringSecurity過(guò)濾器鏈中的應(yīng)用,通過(guò)一系列的過(guò)濾器按順序處理請(qǐng)求,每個(gè)過(guò)濾器負(fù)責(zé)特定的安全功能,實(shí)現(xiàn)靈活且可擴(kuò)展的請(qǐng)求處理機(jī)制,感興趣的朋友跟隨小編一起看看吧2024-11-11
Java實(shí)現(xiàn)數(shù)據(jù)脫敏(Desensitization)的操作指南
數(shù)據(jù)脫敏是指通過(guò)對(duì)敏感數(shù)據(jù)進(jìn)行部分或完全隱藏處理,保護(hù)敏感信息在存儲(chǔ)和使用過(guò)程中的安全性,常見(jiàn)的應(yīng)用場(chǎng)景包括日志記錄、接口返回、報(bào)表展示、數(shù)據(jù)分析等,本文給大家介紹了Java實(shí)現(xiàn)數(shù)據(jù)脫敏(Desensitization)的操作指南,需要的朋友可以參考下2025-02-02
Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重復(fù)讀取配置文
這篇文章主要介紹了Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重復(fù)讀取配置文件的方法,需要的朋友可以參考下2015-12-12
解析電子郵件的基本概念及JavaMail API郵件功能使用
這篇文章主要介紹了電子郵件的基本概念及JavaMail API郵件功能使用,包括用Java來(lái)發(fā)送郵件的示例,需要的朋友可以參考下2016-02-02

