怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现
今天是刘小爱自学Java的第143天。
感谢你的观看,谢谢你。
学习计划安排如下:
- 商品分类业务的初步实现。
- 数据模型的分析:数据表字段的设计,Java中对应的实体类,前端页面vue组件。
- 业务模型的分析:请求路径是什么?根据什么去数据库查询?具体实现代码的编写。
- 其中还有一个跨域问题未来得及解决,怎么感觉积累的问题越来越多了,这样下去可不行啊。
一、商品分类业务
我们的项目是刘小爱商城,其核心自然是商品了,所以就要涉及到一个商品分类业务。
1需求分析
我们先看看国内的主流网站上是如何做的?
比如说家用电器,这是一级类目。
它又分为很多种:比如说电视、空调、洗衣机、冰箱……等,这是二级类目。
并且还能够垂直细分,比如说电视又可以被分为:超薄电视、全面屏电视……等。
好,如何用代码实现这种需求?
一个需求拿到手中了,优先建立数据模型。
- 前端页面中的这些数据如何存放到数据库中?
- 数据库中的表如何设计,有哪些字段?
- 设计Java实体类和数据表对应?
这些问题解决了,方向也就定了,剩下的就是具体代码的编写了。
所以说数据模型是非常重要的,你想呀,方向都弄错了,写再多的代码有什么用?
2数据库表关系梳理
商品分类这是一个多级类目的关系。
家用电器是一个父节点,它有多个子节点,子节点往下又有子节点,所以表字段设计:
- id和name表字段这不用多说。
- 通过表字段parent_id指定对应父节点的id?
- 通过表字段is_parent确定它是否是父节点?
- 如果是true表示它是父节点,有子节点。
- 如果是false表示它不是父节点,没有子节点。
这样就能把表数据自关联起来了,无论多少级关系,都能表示清楚了。
值得注意的是:
- 数据表字段单词之间用下划线“_”隔开。
- is_parent是一个布尔值,但是在数据表中用0和1表示,0为false,1为true。
3前端vue代码的编写
好数据分析完成,先从前端页面开始编写,因为请求是从前端页面发出的。
当然实际开发中应该都是根据开发文档来各自完成,我这边的话都得自己来弄。
Category.vue是分类业务对应的具体vue,v-card:卡片,是vuetify框架中提供的组件。
至于具体的前端代码编写,我们不做详细介绍,但是有一点我们要搞清楚:
页面发送的请求路径是怎样的?
后台服务器得根据这个路径来接受请求。
我们可以发现:请求路径为baseUrl+url,也就是上述中两个url相连接。
同时再通过浏览器F12打开控制台确认其请求路径是否是这样的?
二、后台代码编写
1Java实体类
注意实体类是存放在微服务lxa-item的lxa-item-pojo子工程中:
数据库中的表tb_category,关于字段和我们一开始的分析基本一致,多了一个sort属性。
而Category实体类使用通用mapper将其和表tb_category一一对应起来。
2启动类及mapper层
该业务逻辑很简单,只涉及到了单表查询,所以使用通用mapper即可。
注意具体的业务代码是存放在微服务lxa-item的lxa-item-service子工程中:
①mapper层代码编写
因为是单表查询,所以直接使用通用mappe即可,继承通用mapper中的Mapper接口即可,泛型为对应的实体类Category。
②启动类编写
因为使用了通用mapper,所以要通过注解@MapperScan确定扫描mapper的路径。
另外两个注解一个开启eureka客户端,一个说明是SpringBoot启动类,写过很多遍了。
注意:通用mapper相关的包为tk开头,一定要注意导包不要导错了。
3Controller层和Service层
①Controller层代码
确认其请求路径:category/list?pid=0
先不考虑网关,直接把整个业务写出来。
请求路径中参数是以问号的形式拼接到路径中的,所以用注解@RequestParam接受参数。
如果是category/list/1这样直接出现在请求路径中,就用注解@Pathvarible接受参数。
②Servic层代码
因为pid并不是tb_category表中的主键,所以创建一个对象设定pid再查询。
注意,做一个提醒:
关于通用mapper的使用我专门写过一篇教程,就不做赘述了。
其中还应该做结果判断的处理,如果查询到的数据为空要报错,我这边暂时没做处理。
三、网关测试
代码编写完毕做一个测试:
①直接访问
直接在浏览器上输入对应的路径,参数pid设置为0,可以从数据库中查询到对应数据。
其查询的数据结果上图右侧有显示。
②通过网关访问
回顾:网关的作用相当于加了一层保护,其本质还是会跳转直接访问时的那个路径。
- prefix:添加路由前缀,网关访问时路径都要加上设置的这个路由前缀。
- routes:添加路由,item/及其子路径全部都会跳转到item-service这个微服务。
再次强调:每新建一个微服务,我们都要以相同的方式配置其网关路由。
③通过域名访问
如果通过我们昨天设定的网关域名访问,会发现浏览器控制台上报错了,
具体什么原因呢?
涉及到了一个跨域问题,关于该问题,时间受限,我们明天再做说明。
最后
我是刘小爱,一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现相关推荐
- 怎么创建数据表的实体类和业务类_SSM搭建二手市场交易平台(二):数据表设计...
写在前面 从本篇开始,我们正式开始项目的搭建,首先介绍数据表的设计,具体包括:表结构,表关系,唯一索引,单索引及组合索引,时间戳这几个内容. 数据表 首先我们创建一个数据库store,然后开始创建数据 ...
- 怎么创建数据表的实体类和业务类_怎样创建一个网站?
怎样创建一个网站?创建网站有三个特别重要的元素,域名.服务器和程序,网站域名按照流程注册就可以了,网站服务器根据网站需要的空间选择,这两个只要你查查或者问提供商就可以慢慢操作的,其中最难的程序,里面需 ...
- 导入图片后截取_微服务项目第36天:导入数据到索引库
今天是刘小爱自学Java的第166天. 感谢你的观看,谢谢你. 学习计划安排,导入需要的数据到索引库: 对于all字段的拼接. spu中附带的skus集合. sku中对应的price. specs规格 ...
- 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面
原文:学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 ...
- 01-创建项目 创建数据表-类别管理--添加类别--持久层
文章目录 1. 关于此项目 2. 关于项目的开发流程 3. 创建数据库与数据表 4. 关于Project与Module 5. 创建Project 6. 商品管理模块项目 7. 关于编写代码 8. 类别 ...
- 模拟hibernate的注解来创建数据表,内置注解
目录 导读 注解释义 注解定义 内置三大注解 override注解 Deprecated注解 SuppressWarnings注解 元注解 SOURCE和RUNTIME的区别 SOURCE RUNTI ...
- 云客Drupal源码分析之数据库Schema及创建数据表
本主题是<云客Drupal源码分析之数据库系统及其使用>的补充,便于查询,所以独立成一个主题 讲解数据库系统如何操作Schema(创建修改数据库.数据表.字段:判断它们的存在性等等),以及 ...
- crmeb从创建数据表到实现最基础增删改查的实现全过程【带附件】
很多使用了 CRMEB 单商户系统的童鞋在进行二开的时候,都会遇到新建了数据表之后不知道对数据表怎么进行操作.那么,这篇文章将带你完整的实现一遍,以后就不会怕啦. 创建数据表 就以最简单的为例,创建一 ...
- mysql创建数据库和创建数据表DDL语言,简单易懂,秒学会
介绍DDL: 数据定义语言(Data Definition Language,DDL),这是一种用于描述数据库所需存储的现实世界实体的专门语言, 其主要目的是用于定义和维护数据库以及数据表结构. 创建 ...
最新文章
- 多快好省的宏基因组研究技巧
- 当前不会命中断点.还没有为该文档加载任何符号解决
- mod_pagespeed
- .SpelEvaluationException: EL1008E: Property or field ‘cache_department_list_Tree‘ cannot be found
- 【转】Unity3D 关于贝赛尔曲线,平滑曲线,平滑路径,动态曲线
- Python入门--字典的创建
- 远程控制软件也要有plan B备选方案
- kubeedge源码分析
- HLK 微软驱动签名过程中踩过的坑
- hdoj 4288coder cf 85d Sum of Medians
- 搬:五大车载操作(VOS)系统优劣对比,车载系统架构分析
- 清除composite里的子控件
- 赚钱 36 计 - 第三十二计:预收计
- 31 | GPU(下):为什么深度学习需要使用 GPU?
- 弘辽科技:拼多多店铺可以改名字吗?店铺名字怎么取?
- iOS微信授权登录中Universal Link(通用链接)的配置 ,解决ios13,ios14微信支付不走回调问题
- 应用程序无法正常启动, 错误代码0xc0000007b
- windows开机自动进bios 常见的问题
- 局部渐近稳定,全局渐进稳定,一致有界,一致最终有界
- [日本留学]高频面试问题清单
热门文章
- sha256校验工具_使用AIDE工具做入侵检测
- C++局部变量和全局变量的初始化
- 一篇文章搞懂数据仓库:三范式与反范式
- Java并发编程实战~不安全的单例
- @requestparam @param @pathvariable @requestbody的区别
- c# 从地址拷贝byte_面试必备的 “零拷贝” 问题!从头给你说!
- oracle 会话 临时表,Oracle 学习系列之二(会话与事务级临时表)
- 风机桨叶故障诊断(六) 利用自编码器进行特征学习
- [数据库]-----记一次mysql分库的操作(冷热分离)
- Linux的实际操作:用户管理(查看用户和组的配置文件/etc/passwd /etc/group /etc/shadow)