天天看點

resultType和resultMap差別

ResultType和resultMap

resultType把查詢結果封裝到pojo或entiey類型, 實體對象的屬性名和對應查詢到的資料庫的字段名要相同

規範:java中的屬性名遵循駝峰命名規則,資料庫遵循全小寫,單詞之間用_隔開

如果定義的實體對象屬性與sql查詢的不同則使用resultMap通過手動建立映射聯系

association标簽用于一對一表關聯查詢:

屬性property:主對象中儲存的屬性名

屬性javaType:關聯對象的類型,即屬性名的類型

屬性ofType:當表關系是一對多時,參數為泛型中的類型

collection标簽用于多對多查詢

屬性property:主對象中儲存的屬性名

屬性oftype:對應類型的全路徑

<!-- 查詢訂單和門店表資訊 -->
<select id="findDoorByOrder" resultMap="OrderRM"> select * from tb_order t1 left join tb_door t2 on t2.id=t1.door_id </select>
<!-- type:把結果封裝給哪個對象(或者别名)
	id:唯一标志
	column:資料庫中的字段名
	property:實體中的屬性名 -->
<resultMap type="Order" id="OrderRM" >
<!-- 描述主鍵 -->
<id property="id" column="id"/>
<result property="doorId" column="door_id"/>
<result property="orderNo" column="order_no"/>
<result property="orderType" column="order_type"/>
<result property="personNum" column="person_num"/>
<result property="createTime" column="create_time"/>
<result property="endTime" column="end_time"/>
<result property="paymentType" column="payment_type"/>
<!-- 配置和訂單對象有一對一關系的門店 -->
<!-- 一對一用association:門店資訊
		property:在主對象中儲存的屬性名
		javaType:關聯對象的類型 -->
<association property="door"
			javaType="Door">
		<id property="id" column="id" />
		<result property="name column="name" "/>	
		<result property="tel" column="tel" />	

</association>
           

繼續閱讀