当前位置: 首页 > news >正文

苍穹外卖Day02——总结2

前期文章

文章标题地址
苍穹外卖Day01——总结1https://blog.csdn.net/qq_43751200/article/details/135466359?spm=1001.2014.3001.5501
苍穹外卖Day01——解决总结1中存在的问题https://lushimeng.blog.csdn.net/article/details/135473412

总结2

  • 前期文章
  • 1. 新增员工模块
    • 1.1 C(Create)、U(Update)、R(Retrivev)、 D(Delete)
    • 1.2 分页查询接口设计
    • 1.3 分页查询代码实现
  • 2. 分类管理模块
    • 2.1 C(Create)、U(Update)、R(Retrivev)、D(Delete)
  • 3. 总结
  • 4. 待补充内容....

1. 新增员工模块

员工管理整体界面效果

在这里插入图片描述

添加员工效果

在这里插入图片描述

修改员工信息效果

在这里插入图片描述

1.1 C(Create)、U(Update)、R(Retrivev)、 D(Delete)

对于新增员工信息接口,一定要确定好以下内容:

  1. 请求接口路径设计;
  2. 请求方式;
  3. 请求的参数;
  4. 接口返回的结果;

确定好上面四步后,以及MVC模型很容易进行接口开发。

例如下面是请求接口设计:

在这里插入图片描述

返回数据:

在这里插入图片描述

1.2 分页查询接口设计

在进行代码撰写的时候,发现分页查询还是存在不熟练问题,下面进行详细的流程阐述:

业务规则

  • 根据页码展示员工信息
  • 每页展示10条数据
  • 分页查询时可以根据需要,输入员工姓名进行查询

依据1.1中接口设计的四原则确定接口:在这里插入图片描述

注意事项:

  • 请求参数类型为Query,不是json格式提交,在路径后直接拼接。/admin/employee/page?name=zhangsan
  • 返回数据中records数组中使用Employee实体类对属性进行封装。

1.3 分页查询代码实现

设计前端传值到后端的DTO:

package com.sky.dto;import lombok.Data;import java.io.Serializable;@Data
public class EmployeePageQueryDTO implements Serializable {//员工姓名private String name;//页码private int page;//每页显示记录数private int pageSize;}

封装PageResult: 后面所有的分页查询,统一都封装为PageResult对象。

package com.sky.result;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.util.List;/*** 封装分页查询结果*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult implements Serializable {private long total; //总记录数private List records; //当前页数据集合}

员工信息分页查询后端返回的对象类型为: Result

package com.sky.result;import lombok.Data;import java.io.Serializable;/*** 后端统一返回结果* @param <T>*/
@Data
public class Result<T> implements Serializable {private Integer code; //编码:1成功,0和其它数字为失败private String msg; //错误信息private T data; //数据public static <T> Result<T> success() {Result<T> result = new Result<T>();result.code = 1;return result;}public static <T> Result<T> success(T object) {Result<T> result = new Result<T>();result.data = object;result.code = 1;return result;}public static <T> Result<T> error(String msg) {Result result = new Result();result.msg = msg;result.code = 0;return result;}}

Controller层

/*** 员工分页查询* @param employeePageQueryDTO* @return*/@GetMapping("/page")@ApiOperation("员工分页查询")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){log.info("员工分页查询,参数为:{}", employeePageQueryDTO);PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);//后续定义return Result.success(pageResult);}

Service层接口

/*** 分页查询* @param employeePageQueryDTO* @return*/PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);

Service层实现类

/*** 分页查询** @param employeePageQueryDTO* @return*/public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {// select * from employee limit 0,10//开始分页查询PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);//后续定义long total = page.getTotal();List<Employee> records = page.getResult();return new PageResult(total, records);}

Mapper层

/*** 分页查询* @param employeePageQueryDTO* @return*/Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);

在 src/main/resources/mapper/EmployeeMapper.xml 中编写SQL:

<select id="pageQuery" resultType="com.sky.entity.Employee">select * from employee<where><if test="name != null and name != ''">and name like concat('%',#{name},'%')</if></where>order by create_time desc</select>

2. 分类管理模块

分类管理前端页面

在这里插入图片描述

新增菜品分类 和 新增套餐分类

在这里插入图片描述

在这里插入图片描述

修改分类

在这里插入图片描述

2.1 C(Create)、U(Update)、R(Retrivev)、D(Delete)

依据接口设计的四原则

  1. 确定接口请求路径设计;
  2. 确定请求方式;
  3. 确定请求的参数;
  4. 去顶接口返回的结果;

3. 总结

  1. 后端的主要任务是进行CURD操作,依据MVC模型,层层递进;
  2. 一般企业会先进行接口设计:会确认请求方式、请求参数以及返回数据类型。在前端数据插入到后端时一般需要DTO类型数据,后端数据传到前端需要VO数据类型;
  3. 为了统一返回类型,一般使用自定义类Result:(code,msg,data)
  4. 常量类设计,一般进行统一的封装,便于统一进行修改。

4. 待补充内容…

  1. BeanUtils类:在项目中使用了该对象属性拷贝方法copyProperties;
  2. DigestUtils类:对用户密码进行MD5加密之后再插入到数据库中;
  3. LocalDateTime类;
  4. ThreadLocal类:在项目中主要是在添加人员信息时需要获取创建人id,使用ThreadLocal类可以访问登录人员的id信息;
  5. 了解扩展Spring MVC框架的消息转化器;

相关文章:

苍穹外卖Day02——总结2

前期文章 文章标题地址苍穹外卖Day01——总结1https://blog.csdn.net/qq_43751200/article/details/135466359?spm1001.2014.3001.5501苍穹外卖Day01——解决总结1中存在的问题https://lushimeng.blog.csdn.net/article/details/135473412 总结2 前期文章1. 新增员工模块1.1 …...

探索Nginx:一款高效、稳定的Web服务器和反向代理工具

在网站性能优化和架构设计中&#xff0c;Nginx以其高性能、低资源消耗和良好的扩展性成为了许多开发者和服务器管理员的首选。本文将为您详细介绍Nginx的概念、特点、安装、配置和使用&#xff0c;帮助您更好地了解并运用这款优秀的工具。 一、Nginx简介 Nginx&#xff08;发…...

文案改写软件,高效改文案的方法

在互联网飞速发展的今天&#xff0c;文案的重要性在营销和传播中变得越发突出。而高质量的文案内能够吸引人们的注意力&#xff0c;打动他们的心弦&#xff0c;这样更能促使他们产生需求。然而&#xff0c;想要写一篇引人入胜的文案并不容易&#xff0c;需要时间和经验来调整和…...

黑马头条-day10

文章目录 app端文章搜索1、文章搜索1.1 ElasticSearch环境搭建1.2 索引库创建①需求分析②ES导入数据场景分析③创建索引和映射 1.3 索引数据同步①app文章历史数据导入ES②文章实时数据导入ES 1.4 文章搜索多条件复合查询①关键词搜索②搜索接口定义 2、搜索历史记录2.1 需求说…...

C++的stack容器->基本概念、常见接口

#include<iostream> using namespace std; #include <stack> //栈stack容器常用接口 void test01() { //创建栈容器 栈容器必须符合先进后出 stack<int> s; //向栈中添加元素&#xff0c;叫做 压栈 入栈 s.push(10); s.push(20); s…...

VUE中引入外部jquery.min.js文件

jquery官网&#xff1a;https://jquery.com/ cdn链接&#xff1a;https://code.jquery.com/jquery-3.7.1.js <template><div class"">测试jq<div id"jq">这是一个盒子</div></div> </template><script> import…...

MongoDB聚合运算符:$avg

$avg运算符返回给定数值的平均值 $avg可用于以下阶段&#xff1a; $addFields阶段(从MongoDB 3.4开始可用)$bucket阶段$bucketAuto阶段$group阶段包含$expr表达式的$match阶段$project阶段$replaceRoot阶段(从MongoDB 3.4开始可用)$replaceWith阶段(从MongoDB 4.2开始可用)$s…...

Web 前端 UI 框架Bootstrap简介与基本使用

Bootstrap 是一个流行的前端 UI 框架&#xff0c;用于快速开发响应式和移动设备优先的网页。它由 Twitter 的设计师和工程师开发&#xff0c;现在由一群志愿者维护。Bootstrap 提供了一套丰富的 HTML、CSS 和 JavaScript 组件&#xff0c;可以帮助开发者轻松地构建和定制网页和…...

【Python笔记-设计模式】惰性评价模式

一、说明 将某些对象的创建或计算延迟到真正需要它们的时候&#xff0c;以减少不必要的资源消耗和提高性能。 惰性评价在Python中实现也成为生成器&#xff0c;一般通过yield关键字实现。 (一) 解决问题 在处理大量数据时&#xff0c;使用惰性加载可以避免一次性加载所有数…...

每日学习总结20240221

每日总结 20240221 花自飘零水自流。一种相思&#xff0c;两处闲愁。 —— 李清照「一剪梅红藕香残玉簟秋」 1. stat 在Linux中&#xff0c;stat 是一个用于显示文件或文件系统状态的命令行工具。它提供了关于文件的详细信息&#xff0c;包括文件类型、权限、大小、所有者、修…...

学生成绩管理系统(C语言课设 )

这个学生成绩管理系统使用C语言编写&#xff0c;具有多项功能以方便管理学生信息和成绩。首先从文件中读取数据到系统中&#xff0c;并提供了多种功能&#xff08;增删改查等&#xff09;选项以满足不同的需求。 学生成绩管理系统功能: 显示学生信息增加学生信息删除学生信息…...

ChatGPT提示词(最新)

它能干什么? 包括但不限于&#xff1a; 类别描述学术论文它可以写各种类型的学术论文&#xff0c;包括科技论文、文学论文、社科论文等。它可以帮助你进行研究、分析、组织思路并编写出符合学术标准的论文。创意写作它可以写小说、故事、剧本、诗歌等创意性的文学作品&#…...

算法——模拟

1. 什么是模拟算法&#xff1f; 官方一点来说 模拟算法&#xff08;Simulation Algorithm&#xff09;是一种通过模拟现实或抽象系统的运行过程来研究、分析或解决问题的方法。它通常涉及创建一个模型&#xff0c;模拟系统中的各种事件和过程&#xff0c;以便观察系统的行为&a…...

如何进行高性能架构的设计

一、前端优化 减少请求次数页面静态化边缘计算 增加缓存控制&#xff1a;请求头 减少图像请求次数&#xff1a;多张图片变成 一张。 减少脚本的请求次数&#xff1a;css和js压缩&#xff0c;将多个文件压缩成一个文件。 二、页面静态化 三、边缘计算 后端优化 从三个方面进…...

vivado FSM Components

Vivado合成功能 •同步有限状态机&#xff08;FSM&#xff09;组件的特定推理能力。 •内置FSM编码策略&#xff0c;以适应您的优化目标。 •FSM提取默认启用。 •使用-fsm_extraction off可禁用fsm提取。 FSM描述 Vivado综合支持Moore和Mealy中的有限状态机&#xff08;…...

从零开始手写mmo游戏从框架到爆炸(十五)— 命令行客户端改造

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 到现在&#xff0c;我们切实需要一个客户端来完整的进行英雄选择&#xff0c;选择地图&#xff0c;打怪等等功能。所以我们需要把之前极为简陋的客户端改造一下。 首先…...

Elasticsearch:什么是 kNN?

kNN - K-nearest neighbor 定义 kNN&#xff08;即 k 最近邻算法&#xff09;是一种机器学习算法&#xff0c;它使用邻近度将一个数据点与其训练并记忆的一组数据进行比较以进行预测。 这种基于实例的学习为 kNN 提供了 “惰性学习&#xff08;lazy learning&#xff09;” 名…...

掌握网络未来:深入解析RSVP协议及其在确保服务质量中的关键作用

第一部分&#xff1a;RSVP简介 资源预留协议&#xff08;RSVP&#xff09;是一种网络协议&#xff0c;用于在网络中的各个节点之间预留资源&#xff0c;以支持数据流的服务质量&#xff08;QoS&#xff09;要求。RSVP特别适用于需要固定带宽和处理延迟的应用&#xff0c;如视频…...

【Linux】一站式教会:Ubuntu(无UI界面)使用apache-jmeter进行压测

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、Java…...

Howler.js:音频处理的轻量级解决方案

文章目录 Howler.js&#xff1a;音频处理的轻量级解决方案引言一、Howler.js简介1.1 特性概览 二、Howler.js基本使用使用详解2.1 创建一个Howl对象2.2 控制音频播放2.3 监听音频事件 三、进阶功能3.1 音频Sprites3.2 3D音频定位 四、微前端场景下的Howler.js Howler.js&#x…...

【讨论】Web端测试和App端测试的不同,如何说得更有新意?

Web 端测试和 App 端测试是针对不同平台的上的应用进行测试&#xff0c;Web应用和App端的应用实现方式不同&#xff0c;测试时的侧重点也不一样。 Web端应用和App端应用的区别&#xff1a; 平台兼容性 安装方式 功能和性能 用户体验 更新和维护 测试侧重点有何不同 平台…...

运维SRE-18 自动化批量管理-ansible4

12.2handles handles触发器(条件)&#xff0c;满足条件后再做什么事情应用场景&#xff1a;想表示&#xff1a;配置文件变化&#xff0c;再重启服务 配置handlers之前&#xff0c;每次运行剧本都会重启nfs&#xff0c;无论配置文件是否变化。 [rootm01 /server/ans/playbook]…...

编程笔记 Golang基础 008 基本语法规则

编程笔记 Golang基础 008 基本语法规则 Go语言的基本语法规则. Go语言的基本语法规则包括但不限于以下要点&#xff1a; 标识符&#xff1a; 标识符用于命名变量、常量、类型、函数、包等。标识符由字母&#xff08;a-z&#xff0c;A-Z&#xff09;、数字&#xff08;0-9&#…...

android input命令支持多指触摸成果展示-千里马framework实战开发

hi input命令扩展提示部分 generic_x86_64:/ # input -h Error: Unknown command: -h Usage: input [<source>] <command> [<arg>...]The source…...

Stable Diffusion 模型分享:Indigo Furry mix(人类与野兽的混合)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...

OpenAI Sora引领AI跳舞视频新浪潮:字节跳动发布创新舞蹈视频生成框架

OpenAI的Sora已经引起广泛关注&#xff0c;预计今年AI跳舞视频将在抖音平台上大放异彩。下面将为您详细介绍一款字节跳动发布的AI视频动画框架。 技术定位&#xff1a;这款框架采用先进的diffusion技术&#xff0c;专注于生成人类舞蹈视频。它不仅能够实现人体动作和表情的迁移…...

[深度学习] 卷积神经网络“卷“在哪里?

​ &#x1f308; 博客个人主页&#xff1a;Chris在Coding &#x1f3a5; 本文所属专栏&#xff1a;[深度学习] ❤️ 热门学习专栏&#xff1a;[Linux学习] ⏰ 我们仍在旅途 目录 1.卷积的定义 2.卷积的"卷"在哪里 3.什么又是卷积神…...

企业网络安全自查:总结报告与改进指南

按照网络和数据安全监督检查工作的要求&#xff0c; 现将网络信息安全自查阶段有关情况总结如下&#xff1a; 一、自查工作的组织开展情况 我单位始终高度重视网络与信息安全自查工作&#xff0c; 成立专项管理组织机构&#xff0c;深入学习贯彻相关文件精神&#xff0c;严格…...

怎么理解ping?这是我听过最好的回答

晚上好&#xff0c;我是老杨。 Ping这几个字母&#xff0c;已经深入网工人的骨髓了吧&#xff1f; 把Ping用到工作里&#xff0c;肯定不少人在用&#xff0c;但对Ping的了解和理解是不是足够深&#xff0c;取决了你能在工作里用到什么程度&#xff0c;能让它帮你到什么地步。…...

用户请求到响应可能存在的五级缓存

用户请求到响应可能存在的五级缓存 当用户在浏览器中输入URL进行访问时&#xff0c;请求并不是直接达到服务器&#xff0c;而是会经历多级缓存&#xff0c;以提高网络效率。本文将详细介绍用户请求到响应可能会经历的五个缓存级别&#xff1a;浏览器缓存&#xff0c;代理缓存&…...

wordpress wp_query 排序/网址注册在哪里注册

ATMEGA128ADS111012864液晶显示程序和电路图,调试成功。 主控芯片为ATMEGA128,开发环境为ICCAVR。实现了ATMEGA128对16位ADC芯片ADS1110的读写控制&#xff0c; 实时采集的数据通过LCD12864进行显示。 ATMEGA128晶振选用8Mhz&#xff0c;电路原理图如图所示。 共同学习 q …...

台州营销型网站建设/青岛 google seo

每个进程都有不同的用户地址空间&#xff0c;任何一个进程的全局变量在 另一个进程中都看不到&#xff0c;所以进程之间要交换数据必须 通过内核&#xff0c;在内核中开辟一块缓冲区&#xff0c;把进程1的数据从用户空间考到内核区&#xff0c;进程2再从内核区把数据考走&#…...

ssm做的直播网站/北京网络营销推广培训哪家好

1080P实战利器搭建最近《使命召唤&#xff1a;战区》热度还在持续攀升&#xff0c;前段时间硬核写过一个关于这款游戏6000元的配置推荐&#xff0c;才没过一个星期&#xff0c;官方Twitter再次宣布玩家人数翻倍突破3000万&#xff0c;想起评论区有玩家反映最近装机成本太高&…...

刚做的网站适合做外链吗/苏州seo

是40&#xff0c; 在建立数据表的时候要注意一下&#xff0c; 用char类型就可以了转载于:https://www.cnblogs.com/souroot/archive/2012/10/20/2732456.html...

深圳商城网站开发/沈阳今日新闻头条

1.编写一个方法&#xff0c;使用以上算法生成指定数目的随机整数 2.请看以下代码&#xff0c;你发现有什么特殊之处吗&#xff1f; 两个计算的方法的方法名只有参数类型和返回值类型不一样&#xff0c;仍然能输出结果&#xff0c;进行了方法的重载。 3.查看一下JDK中System.out…...

怎么建立免费的网站/专业网站建设

感谢M_Studio的无私分享&#xff0c;下面是他的主页 M_Studio的个人空间_哔哩哔哩_Bilibili Photon&#xff1a; https://www.photonengine.com/zh-CN/Photon 游戏素材&#xff1a; https://assetstore.unity.com/publishers/44925 一、注册创建应用 创建 导入Photon和游…...