1. 程式人生 > >resultMap自定義映射---8.3.1. 解決列名(表中的字段名稱)和實體類中的屬性名不一致

resultMap自定義映射---8.3.1. 解決列名(表中的字段名稱)和實體類中的屬性名不一致

lec per 編寫 動態代理 參數類型 ID res HERE 用戶

1.1.1.1. 步驟一:將駝峰匹配註釋掉 --------------測試完成後仍然 回來開啟 其他地方可能用到

一旦註釋掉駝峰匹配,那麽再通過queryUserById查詢的結果中,用戶名就無法封裝了,此時我們可以嘗試使用ResultMap來解決這個問題。

技術分享圖片

1.1.1.2. 步驟二:在UserMapper.xml中配置resultMap

<!--

resultMap標簽:可以自己配置對象屬性和表字段的映射(不僅僅是駝峰規則的映射)

type屬性:結果集的封裝類型

id屬性:唯一標識

autoMapping屬性:如果不配置,默認為true。對其他屬性進行自動映射。

-->

<resultMap type="User" id="userResultMap" autoMapping="true">

<!-- id標簽:配置主鍵映射,column:表中的字段名稱,property:屬性名稱 -->

<id column="id" property="id"/>

<!-- 可以用來配置普通類型字段和屬性映射(非復雜類型) -->

<result column="user_name" property="userName"/>

</resultMap>

1.1.1.3. 步驟三:在statement中引用自定義resultMap

<!--

select:查詢的statement,用來編寫查詢語句。

id:語句的唯一標識,使用動態代理之後,必須和mapper接口中的方法名稱一致。

resultType:配置返回的結果集類型

parameterType:參數類型,可以省略。

-->

<!-- resultMap:引用自定義結果集的唯一標識 -->

<select id="queryUserById" resultMap="userResultMap"

>

select * from tb_user where id = #{id}

</select>

測試無誤

註意:測試完記得將駝峰命名的配置重新開啟,因為其他的測試方法還要用。

resultMap自定義映射---8.3.1. 解決列名(表中的字段名稱)和實體類中的屬性名不一致