Mybatis(解決屬性名和欄位名不一致的問題)
阿新 • • 發佈:2022-01-12
5、Mybatis(解決屬性名和欄位名不一致的問題)
我們從資料庫中取到的資料都會交給實體類,然後從實體類中拿到資料並操作資料,所以如果我們資料庫中的欄位要是和實體類中的屬性不一致的話,我們就從實體類中無法得到我們想要的一些資料
解決方法:
- 起別名【不推薦】因為要是欄位非常多的話,就很不方便
就是在Mapper.xml檔案中將欄位全部寫出來,並給想到的欄位起別名
<mapper namespace="com.kuang.dao.UserMapper"> <select id="getUserList" resultType="User"> select id,name,pwd as password from mybatis.user </select> </mapper>
- resultMap【推薦使用】
我們只需要在Mapper.xml檔案中加入resultMap,設定column和property使得資料傳輸一致
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.kuang.dao.UserMapper"> <!--結果集對映--> <resultMap id="userMap" type="User"> <result column="pwd" property="password"/> </resultMap> <select id="getUserList" resultMap="userMap"> select * from mybatis.user </select> </mapper>
- resultMap元素是MyBatis中最重要最強大的元素
- resultMap的設計思想是,對於簡單的語句根本不需要配置顯示的結果對映,而對於複雜一點的語句只需要描述他們的關係就行了
- resultMap最優秀的地方在於,雖然你已經對他相當瞭解了,但是就根本不需要顯示的用到他們