Mybatis_SQL映射文件_联合查询_分步查询

1、association实现分步查询

KeyDao.xml

   
	<!-- public Key getKeyByIdSimple(Integer id); -->
    <!-- 查询key的时候也可以带上锁子信息  -->
    <!-- 
    private Integer id;//钥匙的id
    private String keyName;//钥匙的名
    private Lock lock;//当前钥匙能开哪个锁;
     -->
  <!--association实现分步查询-->

    <select id="getKeyByIdSimple" resultMap="KeySimpleMap">
        select * from t_key where id = #{id}
    </select>

    <resultMap id="KeySimpleMap" type="com.czl.bean.Key">
        <id property="id" column="id"></id>
        <result property="keyName" column="keyname"></result>

        <!--告诉mybatis自己去调用一个查询查锁子
                 select="":指定一个查询sql的唯一标识;mybatis自动调用指定的sql将查出的lock封装进来
                 public Lock getLockByIdSimple(Integer id);需要传入锁子id
                 告诉mybatis把哪一列的值传递过去
                 column:指定将哪一列的数据传递过去
                   -->
        <association property="lock" select="com.czl.dao.LockDao.getLockByIdSimple" column="lockid">
            <id property="id" column="id"></id>
            <result property="lockName" column="lockname"></result>
        </association>

LockDao.xml


    <select id="getLockByIdSimple" resultType="com.czl.bean.Lock">
        select * from t_lock where id = #{id}
    </select>

2、collection实现分步查询

LockDao.xml

<!--
    private Integer id;
    private String lockName;
    private List<Key> keys;

   id  lockname
    3    3号锁
                    -->
    <select id="getLockByIdStep" resultMap="mylockstep">
        select * from t_lock where id=#{id}
    </select>

    <resultMap id="mylockstep" type="com.czl.bean.Lock">
        <id property="id" column="id"></id>
        <result property="lockName" column="lockname"></result>

        <collection property="keys"
                    select="com.czl.dao.KeyDao.getKeysByIdStep"
                    column="id">
        </collection>

    </resultMap>

KeyDao.xml


      <!--按照锁子id查出所有的key-->
    <select id="getKeysByIdStep" resultType="com.czl.bean.Key">
        select * from t_key where lockid =#{id}
    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值