1. 程式人生 > 其它 >Mybatis(解決屬性名和欄位名不一致的問題)

Mybatis(解決屬性名和欄位名不一致的問題)

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最優秀的地方在於,雖然你已經對他相當瞭解了,但是就根本不需要顯示的用到他們
樹越是嚮往高處的光亮,它的根就越要向下,向泥土向黑暗的深處。