学了十来天的Java微服务项目,完成了三个小模块

createh51个月前 (02-01)技术教程11

今天是刘小爱自学Java的第153天。

感谢你的观看,谢谢你。

学习计划安排如下:

  • 商品新增业务的实现,前面我们都是着重讲了查询,一般来说,查询最常用,新增较复杂。
  • 这次的业务就比较复杂了,比我们前面写的新增品牌复杂的多了,光数据库里的表就对应了几张,估计要花个几天时间。

首先,对这十来天的学习做一个说明:

这仅仅只是项目中的一个后台管理系统,是给网站管理人员看的。

还有一个前台门户系统,是给用户看的,具体业务都还没有接触到。

商品管理主要四大块,无外乎都是增删改查:

商品分类、商品品牌、商品规格参数这三大块也就是这十来天的学习内容,已学完。

在学习笔记中主要实现了对应的查询业务和新增业务,至于修改和删除思路大同小异,就不额外再说明了。

而商品列表也就是这几天相关的学习内容。

一定要注意的是:商品列表是在另外三大块的基础上实现的,也就是说商品分类、品牌和规格参数都是确定了的。

一、前端页面分析

具体的页面如下图:

点击新增商品,会弹出一个对话框,里面的要添加的数据就有4大块,有点复杂。

其就是使用Vue写的,至于具体是如何写的?就不从0开始写一遍了,毕竟以我的学习进度,估计光写都要花个几天的时间。

但是呢,虽然不用自己从0开始写,但至少也要看得懂,不然以后怎么和前端人员撕逼……

其中因为前端代码太多了,我只截取了几个关键的代码块,做一个简单的说明。

①新增商品按钮

看上面的代码,能发现该按钮绑定了一个点击事件,一点击会执行addGoods方法。

②addGoods方法

有一个属性show,当addGoods方法执行时会将该属性设定为true。

③对话框

该组件就是通过show属性来控制的:

  • 当show为false时,对话框不出现。
  • 当show为true时,对话框出现。

:点击新增商品按钮,触发addGoods方法,show属性被设置成true,对话框出现。

而要提交给后台的数据又是通过一个form表单来提交的,涉及到的数据较多,上述是专门自定义了一个组件GoodsForm。

二、新增商品基本信息

首先我们要确认一点,开头也说过:

商品列表是确定了商品分类和品牌的,关于商品分类和品牌不能瞎填。

①商品分类和品牌

数据以下拉框选择的方式出现,并且都是确定了的,其中从数据库中查询具体数据。

②观察网页变化

我在选择下拉框里的内容之后,一共发送了4次请求,不对,应该是5次:

第1次请求能查询出商品分类的父根节点数据,其具体是如何实现的呢?

我不太清楚,我没写过,暂时也没时间去研究,我看了下是和静态相关的。

第2次第3次请求,看参数就是根据pid查询商品分类,也就是根据父节点查询商品分类。

这个请求太熟悉了,就是前几天写代码实现了的,响应状态码为200,所以能够查询到了数据并在下拉框中显示。

而第4次和第5次请求,它报错,因为去具体还没有实现,我们现在就将其实现。

第4次请求点进去会发现其就是根据cid查询品牌,其具体请求路径/方式/参数/返回值就不再一一说明了,很简单的一个业务。

三、根据商品分类id查询品牌

1Controller层代码

  • 请求路径:真实路径为brand/cid/{cid}。
  • 请求方式:Get请求。
  • 请求参数:因为参数cid是直接出现在路径中的,所以使用@Pathvariable来取。
  • 返回值:返回值为一个品牌集合,也就是一个商品分类下会有多个品牌,这也好理解。

至于其具体的前端vue代码是如何编写的,就不一一分析了。

2SQL语句分析

当初在设计品牌表的时候,并没有将cid设置成品牌表的一个字段,而是设置了一张中间。

所以此次查询不是单表查询,不能直接使用通用mapper这个插件来完成查询。

需要自己写多表关联查询语句,这就涉及到数据库sql语句的知识点了。

具体的SQL语句编写如上图。

3Service层和Mapper层

因为该业务很简单,所以确定了sql语句,代码基本上也就写完了。

在Mapper层可以自定义一个方法,通过注解@Select编写sql查询语句。

四、最后测试

代码写完,再次填写数据并观察网页变化:

重新加载,会发现请求变成200了,该业务实现,根据商品分类查询到了品牌。

同时前端页面品牌下拉框中也会出现该商品分类下对应的品牌数据了。

emmm商品的新增,写了一篇连请求参数都还弄完,估计这要花个几天时间了。

最后

行有不得反求诸己,我是@刘小爱

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

相关文章

如何通过Serverless提高 Java 微服务治理效率?

简介: 在业务初期,因人手有限,想要快速开发并上线产品,很多团队使用单体的架构来开发。但是随着公司的发展,会不断往系统里面添加新的业务功能,系统越来越庞大,需求不断增加,越来越多的人也会加入到开发团队...

Java:Java中的微服务(java微服务包括什么)

  如果你想使用Java中的云原生微服务快速实现大规模可扩展性,那么不需要重新发明轮子。一些创新工具可以帮助你。通过Java培训课程,在Java(软件开发中最常用的编程语言)方面打下坚实的基础,更好地...

3 个主流 Java 微服务框架的特点分析

本文我们简单聊聊当下主流的 3 个 Java 微服务框架,看看各自的特点,下面和千锋广州小编一起来看看吧!1. Spring and Spring BootimageSpring Boot 在 Jav...

基于OpenTelemetry实现Java微服务调用链跟踪

本文分享自华为云社区《基于OpenTelemetry实现Java微服务调用链跟踪-云社区-华为云》,作者: 可以交个朋友。一 背景随着业务的发展,所有的系统都会走向微服务化体系,微服务进行拆分后,服务...

阿里内网不传之秘:Java微服务实战笔记,共140个案例手把手教学

微服务是当下所有互联网项目的首选架构,已经成为高级Java程序员必备技能。然而,目前网络中的微服务课程主要围绕SpringCloud相关技术栈,微服务不仅仅是SpringCloud,还包括很多分布式系...

开源微服务编排框架:Netflix Conductor

本文主要介绍netflix conductor的基本概念和主要运行机制。一 简介netflix conductor是基于JAVA语言编写的开源流程引擎,用于架构基于微服务的流程。它具备如下特性:允许创...