• shop--7.店铺编辑和列表--联合查询的结果集封装ResultMap association collection


    店铺编辑

    首先获取店铺的信息,然后在此基础上进行改动

    编写店铺查询queryByShopId(long shopId)

    因为在查询店铺时,shop表中只含有

    这些PersonInfo,Area,ShopCategory的id,但是需要显示的是所有者的名字,区域的名字和店铺分类的名字,所以,需要进行联合查询

     而且Shop类中

    也是这些类,而不是它们的id

    在进行联合查询时,接收联合查询的返回值不能这样单纯的定义为Shop,而要将信息封装为一个ResultMap 

    使用association定义关联的单个对象的封装规则;

    JavaEE——Mybatis(5)--resultMap自定义结果集封装

    ResultMap定义

    <!--使用ResultMap自定义结果集封装-->
        <resultMap id="shopMap" type="com.shop.bean.Shop">
            <id column="shop_id" property="shopId"/>
            <result column="shop_name" property="shopName"/>
            <result column="shop_desc" property="shopDesc"/>
            <result column="shop_addr" property="shopAddr"/>
            <result column="phone" property="phone"/>
            <result column="shop_img" property="shopImg"/>
            <result column="priority" property="priority"/>
            <result column="create_time" property="createTime"/>
            <result column="last_edit_time" property="lastEditTime"/>
            <result column="status" property="status"/>
            <result column="advice" property="advice"/>
            <association property="area" column="area_id" javaType="com.shop.bean.Area">
                <id column="area_id" property="areaId"/>
                <result column="area_name" property="areaName"/>
            </association>
            <association property="owner" column="owner_id" javaType="com.shop.bean.PersonInfo">
                <id column="user_id" property="userId"/>
                <result column="user_name" property="userName"/>
            </association>
            <association property="shopCategory" column="shop_category_id" javaType="com.shop.bean.ShopCategory">
                <id column="shop_category_id" property="shopCategoryId"/>
                <result column="shop_category_name" property="shopCategoryName"/>
            </association>
        </resultMap>
    

      

    SQL语句

    <!--public Shop queryByShopId(long shopId);-->
        <select id="queryByShopId" parameterType="java.lang.Long" resultMap="shopMap">
            SELECT
            s.shop_id,
            s.shop_name,
            s.shop_desc,
            s.shop_addr,
            s.phone,
            s.shop_img,
            s.priority,
            s.create_time,
            s.last_edit_time,
            s.status,
            s.advice,
            a.area_id,
            a.area_name,
            sc.shop_category_id,
            sc.shop_category_name
            FROM
            shop s,
            area a,
            shop_category sc
            WHERE
            s.area_id=a.area_id
            AND
            s.shop_category_id=sc.shop_category_id
            AND
            s.shop_id=#{shopId}
        </select>
    

      

      

  • 相关阅读:
    day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)
    day11(jsp入门&Cookie&HttpSession&一次性图片校验码)
    day10(java web之request&respone&访问路径&编码问题)
    day09:Servlet详解
    day08:软件系统的体系结构&Tomcat详解&Web应用&http协议
    泛型详解
    类加载器
    动态代理2
    动态代理3之代理工厂实现
    动态代理1
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/8888820.html
Copyright © 2020-2023  润新知