changgou-day01

目标

  • 了解相关电商的背景和技术特点
  • 掌握电商模式
  • 掌握changgou的技术架构
  • 掌握changgou的搭建
  • 搭建一个商品微服务(通用mapper+pagehelper来实现CRUD)
  • 品牌的CRUD+paging

    1 电商模式

    1. B2B 商家到商家 阿里巴巴
    2. C2C 客户到客户端 闲鱼 淘宝
    3. B2B2C 商家到商家再到用户 现在jd,天猫
    4. O2O 线上到线下 美团 大众点评
    5. B2C 商家到用户 以前的jd changgou

    2.静态原型

    1. 产品定义需求的一个文档,一般以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来生成接口文档。

  1. 接口文档使用(可以不用管):

SWAGGEr文档的使用:

  1. + 安装nodejs
  2. + 设置HS_HOME 环境变量
  3. HS_HOME = F:\courses\changgou\资\swagger\swagger-ui-master
  4. + 设置Path路径: 添加以下的路径
  5. %HS_HOME%\node_modules\.bin
  6. + cdF:\courses\changgou\资\swagger\swagger-ui-master
  7. + 执行命令
  8. hs -p 500
  9. + 浏览器中访问:
  10. http://127.0.0.1:500/dist/index.html
  1. -Xms256mb -Xmn256mb
  2. <a name="B4yP7"></a>
  3. #### 4.需求
  1. 实现获取品牌列表 特点: 需要编写dao接口 编写xml 针对某一个表比如:品牌表 表名不一样,其他都类似 通用的抽取:已经有现有的解决方案(通用的mapper 国人开发的开源的jar) 使用方式:
    • 添加起步依赖
    • 创建POJO 并且一定要使用JPA注解进行映射(数据库表和POJO的属性建立映射关系)
    • 创建接口 继承Mapper即可
    • 【一定要】使用通用的mapper的组件扫描注解 Mapper接口所在的包
      1. 思路:
      1 页面加载了之后就发送ajax请求 2 后台接收请求之后从数据库获取数据 3 返回前端JSON 请求: /brand GET 参数: 没有 返回值:Result> —>@responebody转成json controller service dao
      1. 1)查询全部列表数据<br />(2)根据ID查询品牌数据
      思路: 点击 查询的时候或者编辑的时候 根据点击到的品牌的ID的值 从数据库获取该品牌数据展示到页面中 请求:/brand/{id} GET 参数:品牌的ID 返回值:Result controller service dao
      1. 3)增加
      思路: 点击提交的时候,实际上就是将 表单数据 作为请求体 传递给后台微服务 微服务接收请求 之后将数据接收到 将数据再插入到数据库表中 请求:/brand POST 参数:Brand (请求体) JSON 返回值:Result true/false controller service dao
      1. ![](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)修改
      思路: 1.回显 已经做了 2.根据条件来更新 页面先填写数据 发送请求 将填写的数据作为请求体 传递过来(要传递一个ID值) 执行sql语句更新品牌数据 请求 /brand/{id} PUT
      参数:要更新的品牌的主键ID ,请求体对象(Brand) 返回值:result true/false
      1. ![](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)删除
      思路: 点击删除的按钮 发送请求 将点击到的品牌的ID 作为参数传递后台 后台根据ID 进行sql 删除品牌 请求: /brand/{id} DELETE 参数: id 返回值:result controller service dao
      1. 6)条件查询
      思路: 输入 品牌名称 和首字母的时候 点击搜索 将输入的数据作为[请求体] 传递给后台 后台接收到值之后,进行判断 执行不同的sql即可

请求:/brand/search POST 参数:brand 来接收页面的请求体 返回值:result> controller service dao

  1. ![](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,total,totalPages,page—->封装到对象PageInfo—>result 步骤: 1.添加pagehelper的起步依赖 2.controller service dao

  1. 8)分页+条件查询

思路: 页面输入 条件之后 点击搜索 将搜索的条件 传递给微服务后台 默认就是要分页查询 查询到数据返回给前端 分页的对象 请求:/search/{page}/{size} POST 参数:page,size ,Brand brand 返回值:Result

  1. 9)公共异常处理

1.创建一个类 交给spring容器 (全局异常处理器) 2.写一个方法 用于捕获某一些指定的异常,当异常发生的时候将由该方法执行 并返回给前端(统一进行处理) ```