MyCat - 商品管理 - 根据 ID 查询 SKU 信息 | 学习笔记

简介: 快速学习 MyCat - 商品管理 - 根据 ID 查询 SKU 信息

开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 商品管理 - 根据 ID 查询 SKU 信息】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/758/detail/13316


MyCat - 商品管理 - 根据 ID 查询 SKU 信息

前言:

条件分页查询接口开发好之后,重启 Console 微服务,对已开发的接口进行测试。

这里用到的是 post 请求,当进行全端的请求时也要以 post 形式进行,要想发起post 请求则需要借助其他工具或者自己写一个表单进行提交。

 

例:利用接口测试工具 postman 进行

地址是"/search ((page]/{size)”

之后在 postman 工具中在 Get 接口后进行请求http://localhost:9001/spu/search/1/10,

之后把 get 请求更改为 post 请求,

注意:这里还需传递对应的信息:searchMap 即查询条件。

假如在 Body 中传递 JOSN 格式的空数据。如图:

image.png

若为空数据,即代表没有选择任何的查询条件,但查询时仍然能查询到商品。

如图:

image.png

查询结果的总条数为 7547 条, 10 条记录。

若把 10 换为 1 再查询,如图:

http:/localhost:9001/spu/search/1/1

查询结果的总条数依旧是7547条,但且只有一条记录。

测试条件查询情况

在 JSON 中编制代码 name,name 是模糊匹配,根据名称查询,假如名称为“全网通”。

查询后的总记录树数为 334 条,所展示出的记录都含有“全网通”名称。

image.png

若用副标题进行查询,则在原有的基础上再编制代码 caption。

之后找到商品列表中的副标题,若副标题为“智慧摄影”(注意:查询时必须满足含有“全网通”和“智慧摄影”的商品,否则查询无效)

之后进行查询。

image.png

查询结果为 1 条。这就说明,此接口测试通过。

通过之后则需要开发最后一个接口:SKU。

Sku 和 spu 的区别:

Spu 是标准产品单元,一个 spu 包含若干个 sku

步骤1、将 spu 切换为 sku

操作如下:

V_parent V_ service_goods main java cn.itcast.goods

mapper.

步骤2、建立 SkuMapper 接口

鼠标右击 mapper,左击选项 NEW,左击选项 Java Class,命名为 SkuMapper。

步骤3、声明方法

在 skumapper 接口中生成 public 方法并编制代码 publio TbSku findById(String skuid)。

并在上方编制注解“根据 ID 查询 sku 信息”。

*根据 ID 查询 SKU 信息

*@param skuid

*@return

*/

public TbSku findBytd(String skuid);

步骤4、编制映射配置文件

复制 cn.itcast.goods.mapper 并重新命名为 Skumapper。如图:

image.png

确认之后,将代码第三行的 spumapper 改为 skumapper。

并将第三行以下的 spumapper 的代码删掉。

如图:

image.png

并声明 select 语句,编制代码

<select id-"findById"parameterType="java.lang.String"resultMap-""></select>。

由于实体类 tbsku 和数据库 createTime 的字段并非完全对应,所以仍要声明一个skumap

<select id-"findById"parameterType-"java.lang.String"resul tMap="skuMap">

并编写语句:select * from tb_sku where id=#{skuid}。

因为上一段编码中用到了skuMap,所以需要在上方声明一个skuMap。

<resultMap id="skuMap"type="cn.itcast.model.TbSku">

并摞列类中的属性和表中的对应关系。

操作如下:

直接找到笔记,在笔记当中的配置直接拷贝到代码中即可。如图:

image.png

步骤5、编写 service 接口

在 service 中新建立一个 Javaclass 接口,用 Interface,并命名为 skuservice。如图:

image.png

编制代码public TbSku findById(String id)。

其作用为根据 ID 查询 sku 信息。

/**

*根据 ID 查询 SKU 信息

*@param id

*@return

*/

public Tbsku findById(String id);

接着声明一个 skuservice 的实现类 SkuServicelmpl。如图:

image.png

实现 skuservice 并加上注解 service。

public class skuserviceImpl implements Skuservice{

@override

public Tbsku findById(String id){

return null;

编制代码 private SkuMapper skuMapper 并传递 Autowired。

@Autowired

private SkuMapper skuMapper;

@override

public TbSku findById(String id){

return null;

将代码 return 后边的 null 改为 skuMapper.findbyId(id)。

步骤6、编写 controller 层逻辑代码

在 controller 新建接口 javaclass 命名为 skucontroller。

package cn.itcast.goods.controller;

public class skuController{

新建声明 Restcontroller 和 RequestMapping("/sku")

public class skucontroller{

注入代码 skuservice skuservice  Autowired 进行注入。

并声明方法 public 和返回值 result 上方声明 GetMapping("/{id}")|。

@GetMapping("/{id}"].

public Result findById(String id){

此处 ID 是用 URL 形式传递所以需要在方法的前面加上注解PathVariable(“id”)。

public Result findById (@pathVariable("id")String id){

通过 skuservice.findById(id) 就能拿到当前的 sku。如图:

image.png

编写代码 return new Result(flag:true,Statuscode.oK,message:“查询成功",sku)。

步骤7、启动当前的 Console 并测试接口

随便寻找一个 sku 的 ID 例如:100000006163。

将之前的链接更改为:

http://localhost:9001/sku/100000006163

查询成功后,说明 sku 信息已经拿到了,即测试成功。

相关文章
|
人工智能 监控 安全
Honeywell 霍尼韦尔 ControlEdge HC900控制器
Honeywell 霍尼韦尔 ControlEdge HC900控制器
|
存储 大数据 分布式数据库
大数据分析的下一代架构--IOTA架构设计实践
IOTA的特点: [x] 去“ETL”化 [x] 高效:时时入库即时分析 [x] 稳定:经过易观5.8Pb,5.2亿月活数据锤炼 [x] 便捷:支持SQL级别的二次开发和UDAF定义 [x] 扩充性强:组件基于Apache开源协议,可支持众多开源存储对接
19350 0
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
人工智能 安全 Linux
云+AI时代下,Alibaba Cloud Linux 进一步演进思考
用好开源、做深开源、自研创新,打造全方位安全可信的服务器操作系统。
|
9月前
|
存储 编解码 资源调度
鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)
本文分享鸿蒙相机开发经验,从环境准备到核心逻辑实现,涵盖权限声明、模块导入、Surface关联与分辨率匹配,再到录制控制及设备适配法则。通过实战案例解析,如旋转补偿、动态帧率调节和编解码优化,帮助开发者掌握功能实现、设备适配与体验设计三大要点,减少开发坑点。适合鸿蒙新手及希望深化硬件交互能力的工程师参考收藏。
362 2
|
存储 索引
Elasticsearch分片和副本
【11月更文挑战第4天】
580 7
|
SQL 存储 关系型数据库
MySQL能否查询某张表的操作记录
MySQL能否查询某张表的操作记录
2341 1
|
数据采集 机器学习/深度学习 分布式计算
从0到1搭建车企数字化营销中台(4):客户数据平台(CDP)
CDP作为数字化营销中台的核心数据引擎,承载着拉通客户全渠道、全旅程链路的数据,实现智能洞察和营销决策
3906 0
从0到1搭建车企数字化营销中台(4):客户数据平台(CDP)
|
消息中间件 负载均衡 监控
【Kafka】Kafka 创建Topic后如何将分区放置到不同的 Broker 中?
【4月更文挑战第13天】【Kafka】Kafka 创建Topic后如何将分区放置到不同的 Broker 中?
|
定位技术
使用Echarts实现地图展示
使用Echarts实现地图展示
510 0