changgou-day01
目标
- 了解相关电商的背景和技术特点
- 掌握电商模式
- 掌握changgou的技术架构
- 掌握changgou的搭建
- 搭建一个商品微服务(通用mapper+pagehelper来实现CRUD)
- 品牌的CRUD+paging
1 电商模式
B2B 商家到商家 阿里巴巴
C2C 客户到客户端 闲鱼 淘宝
B2B2C 商家到商家再到用户 现在jd,天猫
O2O 线上到线下 美团 大众点评
B2C 商家到用户 以前的jd changgou
2.静态原型
产品定义需求的一个文档,一般以html的格式展示。
3.接口文档
``` 接口是什么?指定的时候【业务接口】 用来定义一个功能的实现。一般需要编写接口文档(后台)。 作用: 描述前端和后台沟通的桥梁。 接口文档进行定义和描述: 定义了 发送请求是什么 定义了 发送的请求的参数 是什么 定义了 返回值 是什么 定义了 【接口】的描述 接口的文档形式: +直接说 +word文档(使用比较多) +md文档(使用的比较多) +swagger文档(html文件 使用的比较多) +ppt +excel
开发来写如下的方式: 接口描述:根据用户的ID 获取用户的信息 接口路径:http://localhost:18081/user/{id} 路径参数:String id 用户ID 返回值 : 类型 是JSON id: String 长度 128 主键的id name: String 长度 129 品牌 格式:{id:”1”,”name”:”名字”} 可以使用swagger来生成接口文档。
接口文档使用(可以不用管):
SWAGGEr文档的使用:
+ 安装nodejs
+ 设置HS_HOME 环境变量
HS_HOME = F:\courses\changgou\资料\swagger\swagger-ui-master
+ 设置Path路径: 添加以下的路径
%HS_HOME%\node_modules\.bin
+ cd到F:\courses\changgou\资料\swagger\swagger-ui-master
+ 执行命令
hs -p 500
+ 浏览器中访问:
http://127.0.0.1:500/dist/index.html
-Xms256mb -Xmn256mb
<a name="B4yP7"></a>
#### 4.需求
- 实现获取品牌列表
特点:
需要编写dao接口 编写xml 针对某一个表比如:品牌表
表名不一样,其他都类似
通用的抽取:已经有现有的解决方案(通用的mapper 国人开发的开源的jar)
使用方式:
- 添加起步依赖
- 创建POJO 并且一定要使用JPA注解进行映射(数据库表和POJO的属性建立映射关系)
- 创建接口 继承Mapper
即可 - 【一定要】使用通用的mapper的组件扫描注解 Mapper接口所在的包
1 页面加载了之后就发送ajax请求 2 后台接收请求之后从数据库获取数据 3 返回前端JSON 请求: /brand GET 参数: 没有 返回值:Result思路:
- > —>@responebody转成json
controller service dao
(1)查询全部列表数据<br />(2)根据ID查询品牌数据
(3)增加
![](https://cdn.nlark.com/yuque/0/2021/png/12589476/1634717011748-9f82dbf9-57c7-452a-a8d5-30e3c7537d02.png#id=PUOYV&originalType=binary&ratio=1&status=done&style=none)<br />(4)修改
![](https://cdn.nlark.com/yuque/0/2021/png/12589476/1634717011856-acaec2ee-fb0b-47b4-b2eb-fd195a61ea4c.png#id=zDphM&originHeight=537&originWidth=1269&originalType=binary&ratio=1&status=done&style=none)<br />![](https://cdn.nlark.com/yuque/0/2021/png/12589476/1634717011944-b5a06b00-39a9-4a54-a1ec-c1b411619d4b.png#id=Rggab&originHeight=316&originWidth=1805&originalType=binary&ratio=1&status=done&style=none)<br />(5)删除
(6)条件查询
思路: 点击 查询的时候或者编辑的时候 根据点击到的品牌的ID的值 从数据库获取该品牌数据展示到页面中 请求:/brand/{id} GET 参数:品牌的ID 返回值:Resultcontroller service dao
思路: 点击提交的时候,实际上就是将 表单数据 作为请求体 传递给后台微服务 微服务接收请求 之后将数据接收到 将数据再插入到数据库表中 请求:/brand POST 参数:Brand (请求体) JSON 返回值:Result true/false controller service dao
思路: 1.回显 已经做了 2.根据条件来更新 页面先填写数据 发送请求 将填写的数据作为请求体 传递过来(要传递一个ID值) 执行sql语句更新品牌数据 请求 /brand/{id} PUT
参数:要更新的品牌的主键ID ,请求体对象(Brand) 返回值:result true/false
思路: 点击删除的按钮 发送请求 将点击到的品牌的ID 作为参数传递后台 后台根据ID 进行sql 删除品牌 请求: /brand/{id} DELETE 参数: id 返回值:result controller service dao
思路: 输入 品牌名称 和首字母的时候 点击搜索 将输入的数据作为[请求体] 传递给后台 后台接收到值之后,进行判断 执行不同的sql即可
请求:/brand/search POST
参数:brand 来接收页面的请求体
返回值:result>
controller service dao
![](https://cdn.nlark.com/yuque/0/2021/png/12589476/1634717012052-80ee5c5f-d9ef-4783-9fe1-b64bca8ecbe0.png#id=Ydr4a&originHeight=557&originWidth=1538&originalType=binary&ratio=1&status=done&style=none)<br />(7)分页查询
思路: 点击页码的时候传递 当前页码的值 和每页显示的行给后台 使用pageHelper分页插件来实现分页功能。 后台接收到之后执行一个分页查询的SQL 执行 再获取总页数 总记录数 返回给前端 select from tb_brand limit (page-1)rows,rows
请求:/brand/search/{page}/{size} GET
参数:page size (page 和rows)
返回值:List
(8)分页+条件查询
思路:
页面输入 条件之后 点击搜索 将搜索的条件 传递给微服务后台
默认就是要分页查询 查询到数据返回给前端 分页的对象
请求:/search/{page}/{size} POST
参数:page,size ,Brand brand
返回值:Result
(9)公共异常处理
1.创建一个类 交给spring容器 (全局异常处理器) 2.写一个方法 用于捕获某一些指定的异常,当异常发生的时候将由该方法执行 并返回给前端(统一进行处理) ```