苍穹外卖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框架的消息转化器;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/486559.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实战:xlsx文件的读写

Python实战&#xff1a;xlsx文件的读写 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得到您的订阅和支持~ &#…

c语言经典测试题3

1.题1 int a 248, b 4; int const *c 21; const int *d &a; int *const e &b; int const * const f &a; 请问下列表达式哪些会被编译器禁止&#xff1f; A: *c 32; B: *d 43 C: e&a D: f0x321f 我们来分析一下&#xff1a;const用来修饰变量是想其…

2、new关键字、继承、堆栈、深拷贝、浅拷贝

一、new关键字的底层原理 1、new关键字的作用 实例化一个对象返回一个新对象让构造函数中的this指向实例化对象 2、new关键字的底层原型、 var p1 {} 创建了新对象&#xff0c;开辟内存空间Person.call(p1)通过call方法改变函数Person中的this指向&#xff0c;指向实例兑现…

代码随想录算法训练营第49天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

文章目录 121. 买卖股票的最佳时机思路代码 122.买卖股票的最佳时机II思路代码 121. 买卖股票的最佳时机 题目链接&#xff1a;121. 买卖股票的最佳时机 文章讲解&#xff1a;代码随想录|121. 买卖股票的最佳时机 视频讲解&#xff1a;121. 买卖股票的最佳时机 思路 要计算第i…

cleanmymacx怎么清理 cleanmymac破解版怎么安装

CleanMyMac X是一款颇受欢迎的专业清理软件&#xff0c;拥有十多项强大的功能&#xff0c;可以进行系统清理、清空废纸篓、清除大旧型文件、程序卸载、除恶意软件、系统维护等等&#xff0c;并且这款清理软件操作简易&#xff0c;非常好上手&#xff0c;特别适用于那些刚入手苹…

构建生物医学知识图谱from zero to hero (3):生物医学命名实体识别和链接

生物医学实体链接 🤓现在是激动人心的部分。对于NLP和命名实体识别和链接的新手,让我们从一些基础知识开始。命名实体识别技术用于检测文本中的相关实体或概念。例如,在生物医学领域,我们希望在文本中识别各种基因、药物、疾病和其他概念。 生物医学概念提取 在这个例子中…

外包干了两个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

智能科技助力服装业:商品计划管理系统的革命性变革

随着智能科技的飞速发展&#xff0c;服装行业正在经历前所未有的变革。在这股浪潮中&#xff0c;商品计划管理系统的智能化转型成为了行业的核心驱动力。这种变革不仅极大地提高了服装企业的运营效率和市场竞争力&#xff0c;更为整个行业的可持续发展注入了新的活力。 智能商…

二十一、图像旋转

项目功能实现&#xff1a;对一张图像进行旋转完全显示&#xff0c;且空白区域用绿色填充 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 rotating.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class ROTATING { public:void rotat…

2/23作业

1.loop_list.c #include "loop_list.h" //创建单向循环链表 loop_p creat_loop_list() { loop_p K (loop_p)malloc(sizeof(loop_list)); if(KNULL) { printf("空间申请成功\n"); } K->len0; K->nextK; return…

2024网络安全人才春招正式启动(附面试真题)

新年新气象&#xff01;新的网安春招即将开始~ 话不多说&#xff0c;在此先给大家送上一份新年礼物《春招安全研究岗位面经分享》&#xff0c;祝各位都能找到满意的工作&#xff01; CSDN大礼包&#xff1a;《黑客&网络安全入门&进阶学习资源包》免费分享 安恒卫兵实…

外包干了3个月,技术退步明显

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…