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>