private Integer id;
private String keyName;
private Lock lock;
级联属性查询结果封装
<select id="getKeyById" resultMap="mykey">
select k.id, k.'keyname', k.'lockid',l.'id' lid, l.'lockName' from t_key k
left join t_lock l on k.'lockid'=l.'id'
where k.'lockid'=l.'id' where k.'id'=#{id}
</select>
<resultMap type="com.bean.key" id="mykey">
<id property="id" column="id"/>
<result property="keyName" column="keyname"/>
<result property="lock.id" column="lid"/>
<result property="lock.lockName" column="lockName"/>
</resultMap>
使用association定义联合查询的对象封装规则
<resultMap type="com.bean.key" id="mykey">
<id property="id" column="id"/>
<result property="keyName" column="keyname"/>
<association property="lock" javaType="com.bean.Lock">
<id property="lock" jcolumn="lid"/>
<result property="lockName" column="lockName"/>
</association>
</resultMap>
collection定义集合类型属性的封装
<!--public Lock getLockById(integer id); -->
<select id="getLockById" resultMap="mylock">
select l.*, k.id kid, k.'keyname', k.'lockid' from t_lock l
left join t_ley k on l.'id'=k.'lockid'
where l.id=#{id}
</select>
<!--
Class Lock{
private Integer id;
Private String lockName;
private List<Key> keys;
}
-->
<resultMap type="com.bean.Lock" id="mylock">
<id property="id" column="id"/>
<result property="lockName" column="lockName">
<!--
collection:定义集合元素的封装
property:指定哪个属性是集合属性
javaType:指定对象类
ofType:指定集合里面元素的类型
-->
<collection property="keys" ofType="com.bean.Key">
<id property="id" column="kid">
<result property="keyName" column="keyname"/>
</collection>
</resultMap>