Mybatis實(shí)體類屬性與數(shù)據(jù)庫不一致解決方案
當(dāng)實(shí)體類屬性和數(shù)據(jù)庫不一致時(shí),使用mybatis查詢數(shù)據(jù)庫返回實(shí)體類自動(dòng)封裝就會(huì)出現(xiàn)問題。針對這種情況,有兩種解決方案。
1、使用別名查詢
<!-- 配置查詢所有操作 --> <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):查詢效率高
缺點(diǎn):如果我們的查詢很多,都使用別名的話寫起來很麻煩
2、定義resultMap
resultMap 標(biāo)簽可以建立查詢的列名和實(shí)體類的屬性名稱不一致時(shí)建立對應(yīng)關(guān)系。從而實(shí)現(xiàn)封裝。在 select 標(biāo)簽中使用 resultMap 屬性指定引用即可。同時(shí) resultMap 可以實(shí)現(xiàn)將查詢結(jié)果映射為復(fù)雜類型的 pojo,比如在查詢結(jié)果映射對象中包括 pojo 和 list 實(shí)現(xiàn)一對一查詢和一對多查詢。
<!-- 建立User實(shí)體和數(shù)據(jù)庫表的對應(yīng)關(guān)系 type屬性:指定實(shí)體類的全限定類名 id屬性:給定一個(gè)唯一標(biāo)識(shí),是給查詢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ù)庫列名 property 屬性:用于指定實(shí)體類屬性名稱--> <!-- 配置查詢所有操作--> <select id="findAll" resultMap="userMap"> select * from user </select>
優(yōu)點(diǎn):代碼書寫簡潔,提高開發(fā)效率
缺點(diǎn):查詢效率低
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript與jsp發(fā)送請求到servlet的幾種方式實(shí)例
本文分別給出了javascript發(fā)送請求到servlet的5種方式實(shí)例與 jsp發(fā)送請求到servlet的6種方式實(shí)例2018-03-03SpringBoot定制三種錯(cuò)誤頁面及錯(cuò)誤數(shù)據(jù)方法示例
Spring Boot提供的默認(rèn)異常處理機(jī)制通常并不一定適合我們實(shí)際的業(yè)務(wù)場景,因此,我們通常會(huì)根據(jù)自身的需要對Spring Boot全局異常進(jìn)行統(tǒng)一定制,例如定制錯(cuò)誤頁面,定制錯(cuò)誤數(shù)據(jù)等。本文主要介紹了SpringBoot三種自定義錯(cuò)誤頁面的實(shí)現(xiàn),快來學(xué)習(xí)吧2021-12-12Java的stream流多個(gè)字段排序的實(shí)現(xiàn)
本文主要介紹了Java的stream流多個(gè)字段排序的實(shí)現(xiàn),主要是兩種方法,第一種是固定多個(gè)字段排序和第二種動(dòng)態(tài)字段進(jìn)行排序,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10解決SpringBoot 測試類無法自動(dòng)注入@Autowired的問題
這篇文章主要介紹了解決SpringBoot 測試類無法自動(dòng)注入@Autowired的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03