这里应该不用改吧 下面不是 as了吗 我改成img_addr 查出的图片 是商品图片 不是详情图片

这里应该不用改吧 下面不是 as了吗 我改成img_addr 查出的图片 是商品图片 不是详情图片

http://img1.sycdn.imooc.com//climg/602236c409bd300207820499.jpg

spacer.gifhttp://img1.sycdn.imooc.com//climg/602237d30909758312930686.jpg


detail_img<?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.imooc.o2o.dao.ProductDao">
   <resultMap id="productMap" type="com.imooc.o2o.entity.Product">
       <id column="product_id" property="productId"/>
       <result column="product_name" property="productName"/>
       <result column="product_desc" property="productDesc"/>
       <result column="img_addr" property="imgAddr"/>
       <result column="normal_price" property="normalPrice"/>
       <result column="promotion_price" property="promotionPrice"/>
       <result column="priority" property="priority"/>
       <result column="create_time" property="createTime"/>
       <result column="last_edit_time" property="lastEditTime"/>
       <result column="enable_status" property="enableStatus"/>
       <association property="productCategory" column="product_category_id" javaType="com.imooc.o2o.entity.ProductCategory">
           <id column="product_category_id" property="productCategoryId"/>
           <result column="product_category_name" property="productCategoryName"/>
       </association>
       <association property="shop" column="shop_id" javaType="com.imooc.o2o.entity.Shop">
           <id column="shop_id" property="shopId"/>
           <result column="owner_id" property="ownerId"/>
           <result column="shop_name" property="shopName"/>
       </association>
       <collection property="productImgList" column="product_id" ofType="com.imooc.o2o.entity.ProductImg">
           <id column="product_img_id" property="productImgId"/>
           <result column="img_addr" property="imgAddr"/>
           <result column="img_desc" property="imgDesc"/>
           <result column="priority" property="priority"/>
           <result column="create_time" property="createTime"/>
           <result column="product_id" property="productId"/>
       </collection>
   </resultMap>

   <select id="queryProductById" resultMap="productMap" parameterType="Long">
       <!-- 具体的sql -->
       SELECT
p.product_id,
p.product_name,
p.product_desc,
p.img_addr,
p.normal_price,
p.promotion_price,
p.priority,
p.create_time,
p.last_edit_time,
p.enable_status,
# TODO p.point,
p.product_category_id,
p.shop_id,
pm.product_img_id,
pm.img_addr AS detail_img,
pm.img_desc,
pm.priority AS pm_priority,
pm.create_time
FROM
tb_product p
LEFT JOIN
tb_product_img pm
ON
p.product_id =
pm.product_id
WHERE
p.product_id =
#{productId}
ORDER BY
pm.priority DESC
</select>
@Test
public void testQuertByProductId(){
Long productId = 57l;
   Product product = productDao.queryProductById(productId);
   System.out.println(product.getProductImgList().size());
   System.out.println(product.getProductImgList().get(0).getImgAddr());

   System.out.println(product.getProductImgList().get(1).getImgAddr());
   System.out.println(product.getShop().getShopId());
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿慧 2021-02-10 16:21:18

同学你好,是的。如果查询数据依然错误,建议同学重新执行一下sql文件,重新创建表。同学不需要修改表中列名。

sql语句如下:

http://img1.sycdn.imooc.com//climg/602396e3097c517a06190219.jpg

在执行完sql语句后,同学需要按照老师上一个问答修改一下resultMap,不需要修改id为queryProductById的sql语句。

如下:

http://img1.sycdn.imooc.com//climg/602397240932b34b08840382.jpg

祝学习愉快~

  • 提问者 weixin_慕勒1328521 #1

    http://img1.sycdn.imooc.com//climg/6023a8040945a1b814460576.jpg

    这是表中的 字段 我的意思是 我按照提示 把 

    column="detail_img"

    改成 img_addr 后 

    我的SQL查询出来的图片不是商品详情图 是商品缩略图 我改回 detail_img 后 就变成查询详情图了 所以到底是应该改还是不要改? 我的SQL语句 和 查询结果都在上图

    2021-02-10 17:34:05
  • 提问者 weixin_慕勒1328521 #2

    按照视频里的提示我改了 查询结果就是错的 我不改 是 detail_img 的话 查出来就是对的 所以视频里的提升 到底改还是不该? 

    2021-02-10 17:39:06
  • 同学你好,同学可以不修改。 是不是要修改resultMap中列名,同学要结合sql语句。如果在sql语句中给tb_product_img表的img_addr起别名了,如a,那么resultMap中,productImgList属性中的imgAddr值对应的列名 就应该用a。

    在ProductDao.xml中,其他sql语句也用到了id为productMap的resultMap。同学可以给不同sql语句写不同的resultMap试试。

    祝学习愉快~

    2021-02-10 18:21:58
好帮手慕阿满 2021-02-09 16:30:09

同学你好,pm是指t_product_img表,pm.img_addr是查询t_product_img表中的img_addr字段,as是给字段起别名。如果t_product_img表中的字段不是img_addr,同学需要修改一下。

祝学习愉快~

  • 提问者 weixin_慕勒1328521 #1

    老师 我表中的字段 是 img_addr 我改成这个后 查出来的图片 是 商品图片 不是商品详情图片 

    2021-02-10 13:29:41
  • 同学你好,productImgList集合中imgDesc的值对应的列应该为detail_img。

    参考代码如下:

    ​<result column="detail_img" property="imgAddr"/>

    http://img1.sycdn.imooc.com//climg/602375f509cbb76a08630151.jpg

    祝学习愉快~

    2021-02-10 13:58:46
  • 意思不就是 不用改吗?

     就是 detail_img 对应 imgAddr

    下面查询时 将表中 pm.img_addr AS 成 detail_img ?

    2021-02-10 16:10:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师