您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹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>
優點:代碼書寫簡潔,提高開發效率
缺點:查詢效率低
關于Mybatis出現實體類屬性與數據庫不一致怎么解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。