为什么要设计DTO类

为什么要使用DTO类,下面以新增员工接口为例来介绍。

新增员工

1.1 需求分析和设计

1.1.1 产品原型

一般在做需求分析时,往往都是对照着产品原型进行分析,因为产品原型比较直观,便于我们理解业务。

后台系统中可以管理员工信息,通过新增员工来添加后台系统用户。

新增员工原型:

当填写完表单信息, 点击"保存"按钮后, 会提交该表单的数据到服务端, 在服务端中需要接受数据, 然后将数据保存至数据库中。

注意事项:

  1. 账号必须是唯一的

  2. 手机号为合法的11位手机号码

  3. 身份证号为合法的18位身份证号码

  4. 员工的密码默认为123456

1.1.2 接口设计

1.1.3 表设计

新增员工,其实就是将我们新增页面录入的员工数据插入到employee表。

employee表的结构:

字段名 数据类型 说明 备注
id bigint 主键 自增
name varchar(32) 姓名
username varchar(32) 用户名 唯一
password varchar(64) 密码
phone varchar(11) 手机号
sex varchar(2) 性别
id_number varchar(18) 身份证号
status Int 账号状态 1正常 0锁定
create_time Datetime 创建时间
update_time datetime 最后修改时间
create_user bigint 创建人id
update_user bigint 最后修改人id

其中,employee表中的status字段已经设置了默认值1,表示状态正常。

1.2 代码开发

1.2.1 设计DTO类

根据新增员工接口设计对应的DTO

前端传递参数列表:

是否可以使用对应的实体类来接收呢?

答案:前端提交的数据实体类中对应的属性 差别比较大时,建议 定义DTO来封装前端提交的数据。

由于上述传入参数和实体类有较大差别,所以自定义DTO类。

java 复制代码
package com.sky.dto;

import lombok.Data;

import java.io.Serializable;

@Data
public class EmployeeDTO implements Serializable {

    private Long id;

    private String username;

    private String name;

    private String phone;

    private String sex;

    private String idNumber;

}

1.2.2 Controller层

1.2.3 Service层接口

1.2.4 Service层实现类

1.2.5 Mapper层

相关推荐
月明长歌2 小时前
个人测试项目:一个可跑、可扩、可复用的 Selenium UI 自动化博客系统全链路测试拆解
selenium·ui·自动化
晚霞的不甘4 小时前
Flutter for OpenHarmony《智慧字典》中的沉浸式学习:成语测试与填空练习等功能详解
学习·flutter·ui·信息可视化·前端框架·鸿蒙
l1t5 小时前
在Windows的WSL中试用GizmoSQL UI连接GizmoSQL数据库服务器
数据库·windows·ui
CamilleZJ5 小时前
多端ui方案
前端·ui
暮云星影17 小时前
四、linux系统 应用开发:UI开发环境配置概述 (三)
linux·ui·arm
子春一1 天前
Flutter for OpenHarmony: 从颜色模型到可访问性:一个 Flutter 高对比度 UI 的完整实践
flutter·ui
雨季6661 天前
Flutter 三端应用实战:OpenHarmony 简易数字累加器开发指南
开发语言·flutter·ui·ecmascript
●VON1 天前
Flutter for OpenHarmony:基于 SharedPreferences 的本地化笔记应用架构与实现
笔记·学习·flutter·ui·架构·openharmony·von
ujainu1 天前
Flutter + OpenHarmony实现高保真闹钟 App:从 UI 设计到实时触发机制全解析
flutter·ui
晚霞的不甘1 天前
Flutter for OpenHarmony《智慧字典》 App 底部导航栏深度解析:构建多页面应用的核心骨架
前端·经验分享·flutter·ui·前端框架·知识图谱