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