1. 程式人生 > 程式設計 >Mybatis實體類屬性與資料庫不一致解決方案

Mybatis實體類屬性與資料庫不一致解決方案

當實體類屬性和資料庫不一致時,使用mybatis查詢資料庫返回實體類自動封裝就會出現問題。針對這種情況,有兩種解決方案。

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>

優點:查詢效率高

缺點:如果我們的查詢很多,都使用別名的話寫起來很麻煩

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 id="findAll" resultMap="userMap">
	select * from user
</select>

優點:程式碼書寫簡潔,提高開發效率

缺點:查詢效率低

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。