Mybatis實體類屬性與數據庫不一致解決方案
當實體類屬性和數據庫不一致時,使用mybatis查詢數據庫返回實體類自動封裝就會出現問題。針對這種情況,有兩種解決方案。
1、使用別名查詢
<!-- 配置查詢所有操作 --> <select resultType='com.itheima.domain.User'>select id as userId,username as userName,birthday as userBirthday,sex as userSex,address as userAddress from user</select>
優點:查詢效率高
缺點:如果我們的查詢很多,都使用別名的話寫起來很麻煩
2、定義resultMap
resultMap 標簽可以建立查詢的列名和實體類的屬性名稱不一致時建立對應關系。從而實現封裝。在 select 標簽中使用 resultMap 屬性指定引用即可。同時 resultMap 可以實現將查詢結果映射為復雜類型的 pojo,比如在查詢結果映射對象中包括 pojo 和 list 實現一對一查詢和一對多查詢。
<!-- 建立User實體和數據庫表的對應關系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 屬性:用于指定數據庫列名property 屬性:用于指定實體類屬性名稱--><!-- 配置查詢所有操作--><select resultMap='userMap'>select * from user</select>
優點:代碼書寫簡潔,提高開發效率
缺點:查詢效率低
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: