级联查询举例

<?xml version="1.0" encoding="UTF-8" ?>
<!--
    代表引入的约束。 引入的是dtd约束
      引用约束有什么作用
          规范了 该xml中标签的使用
          你不能去自定义标签 只能使用人家定义好的标签
 -->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
  mapper 映射
      UserMapper.xml 跟 UserMapper.java产生映射
     映射内容写到 mapper标签里面
       属性
         namespace  当前xml与哪个个接口产生映射
-->
<mapper namespace="com.jilian.dao.UserMapper">

  <!--
   /**
     * 查询所有用户信息
     */
    List<User> selectAllUser();
       我的想法就是在封装user同时 把user关联的扩展信息 也封装到user中
                   封装user同时 把这个用户的订单信息 封装到user中 List<Order> orders;
  -->
    <select id="selectAllUser" resultMap="userResultMapper">
        SELECT * FROM t_user
    </select>

    <resultMap id="userResultMapper" type="user">
        <!--基本信息封装-->
        <id column="id" property="id"/>
        <result column="username" property="username"/>
        <result column="birthday" property="birthday"/>
        <result column="sex" property="sex"/>
        <result column="address" property="address"/>
       <!--
           我还想去查询 每个用户对应的扩展信息
           查询某个用户扩展信息
            SELECT * FROM t_user_info WHERE user_id=1
       -->
        <!--一对一关系封装
            property 就是要把查询出来的数据封装到user 的 那个属性中

            select  子查询  用户扩展信息的数据 来源于那个查询语句

            column 列名  那个列 作为条件

        -->
        <association property="userInfo" select="selectUserInfoById" column="id"></association>

        <!--
           在完成 用户信息查询之后 封装某个user的时候
            需要关联查询出 该用户多个订单信息
              一个用户对应多个订单信息
        -->
        <collection property="orders" select="selectOrdersByUserId" column="id"></collection>

    </resultMap>


    <!--
    查询某个用户的扩展信息:SELECT * FROM t_user_info WHERE user_id=1      
    -->
    <select id="selectUserInfoById" resultType="userInfo">
          SELECT * FROM t_user_info WHERE user_id=#{id}
    </select>


    <!--
      查询某个用户的订单信息:SELECT * FROM t_order WHERE user_id=1
    -->
    <select id="selectOrdersByUserId" resultType="order">
        SELECT * FROM t_order WHERE user_id=#{id}
    </select>
</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清淡的粥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值