resultMap的使用以及延时加载机制
1.一对多查询
UserDAOMapper.xml
<SqlMap namespace="User">
<typeAlias alias="user" type="com.ibatis.sample.User"/>
<typeAlias alias="address" type="com.ibatis.sample.Address"/>
<resultMap id="get-user-result" column="id" />property是user的属性, column是数据库列名
<result property="name" column="name" />
<result property="addresses" column="id" 此处指明通过getAddressById获得addresses(一个address的数组)属性,getAddressById的参数是id
select="User.getAddressesById"/> 此处的 User.getAddressById User.指的是命名空间
/<resultMap>
<select id="getUsers"
parameter
resultMap="get-user-result" >
<![CDATA[
select
id,
name
from t_user
where id = #id#
]]>
</select>
<select id="getAddressesById"
parameter
resultcolumn="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="address" column="t_address.address"/>
<result property="zipCode" column="t_address.zipcode"/>
</resultMap>
<select parameterresultMap="get-user-result" >
<![CDATA[
select
*
from t_user, t_address
where t_user.id = t_address.user_id
]]>
</select>