1.將公用的內容提取出來,使用sql標籤提取,然後使用include引用
<resultMap type="mptest.mybatistest.entity.GoodVo" id="userMap" >
<result column="id" property="id" />
<result column="name" property="name" />
<collection property="orderList" ofType="mptest.mybatistest.entity.Order">
<result column="orderId" property="orderId" />
<result column="orderFee" property="orderFee" />
</collection>
</resultMap>
<sql id="field" >
u.id,
u.name
</sql>
<select id="getGoodsList" resultMap="userMap" >
select
<include refid="field"></include> ,
o.orderId,
o.orderFee
FROM
user_test u left join order_id_test o on u.id=o.id
where u.id = 1
</select>
2.表在使用的時候可能起別名,有別名的情況:
<resultMap type="mptest.mybatistest.entity.GoodVo" id="userMap" >
<result column="id" property="id" />
<result column="name" property="name" />
<collection property="orderList" ofType="mptest.mybatistest.entity.Order">
<result column="orderId" property="orderId" />
<result column="orderFee" property="orderFee" />
</collection>
</resultMap>
<sql id="field" >
u.id,
u.name
</sql>
<sql id="field1" >
${alias}.orderId,
${alias}.orderFee
</sql>
<select id="getGoodsList" resultMap="userMap" >
select
<include refid="field"></include>,
<include refid="field1">
<property name="alias" value="o"/>
</include>
FROM
user_test u left join order_id_test o on u.id=o.id
where u.id = 1
</select>
1)sql和include配合使用,sql標籤裏和其他增刪改查標籤一樣支持動態sql標籤
2)include標籤可以通過property子標籤給sql標籤裏傳值,sql標籤裏用 ${} 獲取