• java中的DTO


    在Java中,DTO代表数据传输对象(Data Transfer Object)。DTO是一种设计模式,用于在应用程序的不同层之间传输数据。DTO通常用于将数据从一个层(如持久化层)传递到另一个层(如视图层)。

    DTO的主要目的是封装数据,将前端发送的数据封装为一个java对象,使得数据可以在不同的层之间传输,同时保持数据的完整性和一致性。DTO通常包含数据成员和getter/setter方法,用于访问和修改数据。

    下面是一个使用DTO的简单例子:

    假设我们有一个用户管理系统,其中包含用户实体类(User)。User类有姓名(name)、年龄(age)和电子邮件(email)等属性。

    在前端,我们有一个表单,用户可以填写姓名和电子邮件,提交表单后,数据将被发送到后端进行处理。

    在后端,我们可以定义一个DTO(AddApplicationDTO),该DTO包含前端表单中需要的数据成员,即姓名和电子邮件。在控制器中,我们可以使用DTO来接收前端传递的数据,并将数据传递给服务层进行处理。

    在这个例子中,DTO扮演了数据传输对象的角色,它用于封装和传输前端表单中的数据,使得数据可以在前后端之间传输,并且可以在不同的层之间进行转换。

    代码示例:

    在Java中定义DTO:

    public class AddApplicationDTO {
        private String name;
        private String email;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在控制器中使用DTO:

    @RestController
    public class UserController {
        @PostMapping("/addUser")
        public String addUser(@RequestBody AddApplicationDTO user) {
            // 将DTO中的数据传递给服务层进行处理
            UserService userService = new UserService();
            boolean result = userService.addUser(user);
            if (result) {
                return "用户添加成功!";
            } else {
                return "用户添加失败!";
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    前后端交互示例(以JSON格式为例):

    前端发送请求:

    {
        "name": "张三",
        "email": "zhangsan@example.com"
    }
    
    • 1
    • 2
    • 3
    • 4

    后端接收请求并处理:

    在服务层中,我们可以将DTO中的数据传递给数据库层,将数据存储到数据库中。在这个例子中,我们不需要DTO中的所有数据,只需要将name和email传递给数据库层即可。这样,我们可以减少不必要的数据传输和转换,提高性能和效率。

  • 相关阅读:
    zemax畸变与消畸变
    CocoaPods公有库和私有库制作
    Pandas 速查手册
    JavaWeb
    一行代码“黑”掉任意网站
    3、常用标签和样式
    (50)其他的性能测试场景
    一文快速了解「脉动调查」
    Spring对AOP的实现
    校企联动,促进就业丨四川文化产业职业学院领导一行莅临我司调研交流
  • 原文地址:https://blog.csdn.net/drhnb/article/details/132797575