上海做网站天锐,网站开发专业培训,坊网站建设,anker 网站建设前期文章
文章标题地址苍穹外卖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 …前期文章
文章标题地址苍穹外卖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 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)
对于新增员工信息接口一定要确定好以下内容
请求接口路径设计请求方式请求的参数接口返回的结果
确定好上面四步后以及MVC模型很容易进行接口开发。
例如下面是请求接口设计 返回数据 1.2 分页查询接口设计
在进行代码撰写的时候发现分页查询还是存在不熟练问题下面进行详细的流程阐述
业务规则
根据页码展示员工信息每页展示10条数据分页查询时可以根据需要输入员工姓名进行查询
依据1.1中接口设计的四原则确定接口
注意事项
请求参数类型为Query不是json格式提交在路径后直接拼接。/admin/employee/page?namezhangsan返回数据中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 ResultT implements Serializable {private Integer code; //编码1成功0和其它数字为失败private String msg; //错误信息private T data; //数据public static T ResultT success() {ResultT result new ResultT();result.code 1;return result;}public static T ResultT success(T object) {ResultT result new ResultT();result.data object;result.code 1;return result;}public static T ResultT error(String msg) {Result result new Result();result.msg msg;result.code 0;return result;}}Controller层
/*** 员工分页查询* param employeePageQueryDTO* return*/GetMapping(/page)ApiOperation(员工分页查询)public ResultPageResult 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());PageEmployee page employeeMapper.pageQuery(employeePageQueryDTO);//后续定义long total page.getTotal();ListEmployee records page.getResult();return new PageResult(total, records);}Mapper层
/*** 分页查询* param employeePageQueryDTO* return*/PageEmployee pageQuery(EmployeePageQueryDTO employeePageQueryDTO);在 src/main/resources/mapper/EmployeeMapper.xml 中编写SQL
select idpageQuery resultTypecom.sky.entity.Employeeselect * from employeewhereif testname ! null and name ! and name like concat(%,#{name},%)/if/whereorder by create_time desc/select2. 分类管理模块
分类管理前端页面 新增菜品分类 和 新增套餐分类 修改分类 2.1 C(Create)、U(Update)、R(Retrivev)、D(Delete)
依据接口设计的四原则
确定接口请求路径设计确定请求方式确定请求的参数去顶接口返回的结果
3. 总结
后端的主要任务是进行CURD操作依据MVC模型层层递进一般企业会先进行接口设计会确认请求方式、请求参数以及返回数据类型。在前端数据插入到后端时一般需要DTO类型数据后端数据传到前端需要VO数据类型为了统一返回类型一般使用自定义类Result(code,msg,data)常量类设计一般进行统一的封装便于统一进行修改。
4. 待补充内容…
BeanUtils类在项目中使用了该对象属性拷贝方法copyPropertiesDigestUtils类对用户密码进行MD5加密之后再插入到数据库中LocalDateTime类ThreadLocal类在项目中主要是在添加人员信息时需要获取创建人id使用ThreadLocal类可以访问登录人员的id信息了解扩展Spring MVC框架的消息转化器