MyBatis联合查询association使用

1.需求

  两张表 channels(频道表)  member(会员表) 频道表里面有会员id,查询频道列表的时候需要关联查询出会员的名称,头像等信息 。

2.channels.xml定义,配置主要在这里

<!-- 频道返回值定义 -->
<resultMap id="BaseResultMap" type="com.model.Channels" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="asset_id" property="assetId" jdbcType="VARCHAR" />
    <result column="asset_name" property="assetName" jdbcType="VARCHAR" />
    <!-- 关联查询出会员信息,member_id是channels表中外键 -->
    <association property="memberInfo" column="member_id" select="findByMemberId"></association>
</resultMap>
<!-- 会员信息返回值定义 -->
<resultMap id="memberResultMap" type="com.model.Member" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
    <result column="member_icon" property="memberIcon" jdbcType="VARCHAR" />
    <result column="mobile_phone" property="mobilePhone" jdbcType="VARCHAR" />
    <result column="last_login_time" property="lastLoginTime" jdbcType="TIMESTAMP" />
</resultMap>
<!-- 查询会员信息 -->
<select id="findByMemberId"  resultMap="memberResultMap" parameterType="java.lang.String" >
    select id, nick_name,member_icon, mobile_phone,last_login_time
    from ao_member_tab
    where id = #{id,jdbcType=VARCHAR}
</select>

3. Channels表模型定义

<!-- 频道Model定义 -->
public class Channels {

    private String assetId;

    private String assetName;

    //会员信息
    private Member memberInfo;
}

4. 这样查询列表中就可以通过channel.memberInfo获取到Member对像,就可以直接获取到会员信息了

参考:http://www.cnblogs.com/xdp-gacl/p/4264440.html

posted @ 2015-06-19 15:58  jerry心  阅读(975)  评论(0编辑  收藏  举报