sql語句
確定查詢的主表:訂單表
確定查詢的關聯表:用戶表
關聯查詢使用內鏈接?還是外鏈接?
由于orders表中有一個外鍵(user_id),通過外鍵關聯查詢用戶表只能查詢出一條記錄,可以使用內鏈接。
SELECT
orders.*,
USER.username,
USER.sex,
USER.address
FROM
orders,
USER
WHERE orders.user_id = user.id
定義resultMap
<!-- 訂單查詢關聯用戶的resultMap
將整個查詢的結果映射到cn.itcast.mybatis.po.Orders中
-->
<resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersUserResultMap">
<!-- 配置映射的訂單信息 -->
<!-- id:指定查詢列中的唯 一標識,訂單信息的中的唯 一標識,如果有多個列組成唯一標識,配置多個id
column:訂單信息的唯 一標識 列
property:訂單信息的唯 一標識 列所映射到Orders中哪個屬性
-->
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="number" property="number"/>
<result column="createtime" property="createtime"/>
<result column="note" property=note/>
<!-- 配置映射的關聯的用戶信息 -->
<!-- association:用于映射關聯查詢單個對象的信息
property:要將關聯查詢的用戶信息映射到Orders中哪個屬性
-->
<association property="user" javaType="cn.itcast.mybatis.po.User">
<!-- id:關聯查詢用戶的唯 一標識
column:指定唯 一標識用戶信息的列
javaType:映射到user的哪個屬性
-->
<id column="user_id" property="id"/>
<result column="username" property="username"/>
<result column="sex" property="sex"/>
<result column="address" property="address"/>
</association>
</resultMap>
需要Orders類中添加user屬性,也許重新建一個實體
order
mapper sql,resultMap為上面定義的resultMap的id
mapper.png