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