Spring Boot电商项目45:购物车模块三:【购物车列表】接口;(遇到了【mybatis多表关联查询时,一种图快的、不建议的方式】;)

本文详细介绍了如何在Spring Boot电商项目中开发【购物车列表】接口,涉及mybatis多表关联查询的不推荐使用方式,以及如何通过CartVO包装查询结果,以满足接口设计规范。特别强调了安全考虑,避免接口直接传入用户ID,以及接口设计与锻炼的过程。
摘要由CSDN通过智能技术生成

说明:

(1) 本篇博客内容:开发购物车模块的【购物车列表】接口;

(2)本篇博客需要注意的点:

          ● 本篇博客遇到了,mybatis多表关联查询,一种不太推荐的使用方式;虽然自己认为不推荐这种使用方式,但还是要知道的;

          ● 这儿,恰巧,我们本来用来包装返回结果的CartVO,可以直接去承载多表查询的结果;(但是,能够感受到,这儿所谓的“恰巧”,在实际中,是可以广泛存在的)

(3)本篇博客出于安全考虑:而采用的一种广泛采用的做法:接口不能传入用户id,而是要在程序内部获取;否则,如果接口参数中有用户id的话,这很可能会被黑客利用,黑客就可以通过这个接口查看任何人的购物车信息了;

其实,由此,也能感受到【接口的设计能力】,这个能力也是需要慢慢锻炼的;

目录

一:【购物车列表】接口;

1.【购物车列表】接口文档;

(1)返回购物车列表时候,没有采用使用分页;

(2)购物车返回的数据:创建CartVO来包装返回给前端的数据,以符合接口对返回数据格式的要求;

(3)购物车返回的数据,横跨了cart表和product表,两个表的内容;所以,在SQL查询的时候,我们要做相应的处理;

2.【购物车列表】接口,在界面上的表现;

二:正式开发;

1.创建CartController类,并在CartController中,创建获取购物车列表的方法:list()方法;

 2.创建CartService接口,CartServiceImpl实现类;

3.在CartServiceImpl中编写获取购物车列表的方法:list()方法;

4.在CartServiceImpl中反向生成方法的声明;

5.在CartMapper中定义【根据userId,从cart表、product表中,查询购物车数据】的方法:selectList()方法;并在CartMapper.xml中编写实现SQL;

(1)在CartMapper中定义【根据userId,从cart表、product表中,查询购物车数据】的方法:selectList()方法;

(2)在CartMapper.xml中编写实现SQL;(重点!!!)

三:测试;


一:【购物车列表】接口;

1.【购物车列表】接口文档;

说明:

(1)返回购物车列表时候,没有采用使用分页;

          ● 这儿,我们默认购物车中的商品数量不多,而且就算购物车中的商品数量比较多,一次性返回购物车中的所有商品比分页获取购物车中的商品,体验也要好;所以,这儿请求购物车列表的时候,没有采用分页;自然,因为没有分页,所以这个接口也没有pageNum,pageSize这种参数;

(2)购物车返回的数据:创建CartVO来包装返回给前端的数据,以符合接口对返回数据格式的要求;

          ● 可以看到,【购物车列表】接口对返回数据的要求,其包括了cart表的内容、也包括了product表的内容、也有一个totalPrice;

          ● 所以,很显然我们通过【mybatis-generator】创建的Cart和Product这两个pojo类,是不符合要求的; 

          ● 所以,我们为了符合接口对返回数据格式的要求,创建了CartVO来包装数据;

(3)购物车返回的数据,横跨了cart表和product表,两个表的内容;所以,在SQL查询的时候,我们要做相应的处理;

这儿,在后面介绍SQL的时候,会详细介绍;

2.【购物车列表】接口,在界面上的表现;

项目上线后,回来补……


二:正式开发;

1.创建CartController类,并在CartController中,创建获取购物车列表的方法:list()方法;

package com.imooc.mall.controller;

import com.imooc.mall.common.ApiRestResponse;
import com.imooc.mall.common.Constant;
import com.imooc.mall.filter.UserFilter;
import com.imooc.mall.model.pojo.User;
import com.imooc.mall.model.vo.CartVO;
import c
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值