mybatis association collection标签

使用场景:处理property不是普通类型

association
两种用法

一 有额外sql 查询的sql没有连表查询 关键select属性

<!--property:属性  column:额外sql的参数
	select:额外sql的位置(dao或mapper接口的位置)的select的id-->
<association property="yljgouModel" column="institution_id"
	select="com.wonders.dao.IYljgouDao.selectById">
</association>

完整代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wonders.dao.IZyzdDao">
    <resultMap id="BaseResultMap" type="com.wonders.model.ZyzdModel">
        <result column="id" property="id" />
        <result column="name" property="name" />
        <result column="gender" property="gender" />
        <result column="poisoning_date" property="poisoningDate" />
        <result column="type" property="type" />
        <!--额外sql-->
        <association property="yljgouModel" column="institution_id"
                     select="com.wonders.dao.IZyzdDao.get">
        </association>
    </resultMap>

    <resultMap id="YljgouModelMap" type="com.wonders.model.YljgouModel">
        <result column="id" property="id" />
        <result column="institution_code" property="institutionCode" />
        <result column="institution_name" property="institutionName" />
    </resultMap>

    <select id="getResultList" resultMap="BaseResultMap">
        select * from TB_XT_ZYZD_INFO
        <if test="keyWord!=null">
            where name like '%'||#{keyWord}||'%'
        </if>
    </select>

    <!--额外sql-->
    <select id="get" resultMap="YljgouModelMap">
      select *
      from TB_XT_YLJG
      where id = #{institutionId}
    </select>
</mapper>

二 无额外sql 查询的sql需要连表查询

<!--javaType:指定封装类型  columnPrefix:下面column的前缀-->
<association property="yljgouModel" javaType="com.wonders.model.YljgouModel" columnPrefix="y_">
	<id column="id" property="id" />
	<result column="institution_code" property="institutionCode" />
	<result column="institution_name" property="institutionName" />
</association>

完整代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wonders.dao.IZyzdDao">
    <resultMap id="BaseResultMap" type="com.wonders.model.ZyzdModel">
        <result column="id" property="id" />
        <result column="name" property="name" />
        <result column="gender" property="gender" />
        <result column="poisoning_date" property="poisoningDate" />
        <result column="type" property="type" />
        <association property="yljgouModel" javaType="com.wonders.model.YljgouModel" columnPrefix="y_">
            <id column="id" property="id" />
            <result column="institution_code" property="institutionCode" />
            <result column="institution_name" property="institutionName" />
        </association>
    </resultMap>

    <select id="getResultList" resultMap="BaseResultMap">
        select zyzd.*,y.id y_id,y.institution_code y_institution_code,y.institution_name y_institution_name
        from TB_XT_ZYZD_INFO zyzd
        left join TB_XT_YLJG y
        on zyzd.institution_id = y.id
        <if test="keyWord!=null">
            where name like '%'||#{keyWord}||'%'
        </if>
    </select>
</mapper>

collection

一 有额外sql 查询的sql没有连表查询 只能这样

同association 

[写博客只为记录,如有不对,请各位大佬指正]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值