Java DTO、VO和PO 解释与使用示例

2023-07-21  本文已影响0人  _浅墨_

在 Java 中,DTO、VO和PO是常见的用于数据传输和表示的概念和模式。它们的含义如下:

  1. DTO (Data Transfer Object):DTO是用于在不同层之间传输数据的对象。它通常用于将数据从数据库层传输到服务层或传输数据从服务层到表示层。DTO对象包含一些字段,这些字段的类型和名称与源数据对象相对应,但通常不包含业务逻辑。

例子:

public class UserDTO {
    private String username;
    private String email;

    // Getter and setter methods
}
  1. VO (Value Object):VO是一个特定领域中的值对象,它通常用于封装一组相关的数据,并且通常会包含一些业务逻辑。VO对象的字段可以是只读的,也就是说,一旦创建就不能修改。

例子:

public class UserVO {
    private final String username;
    private final String email;

    // Constructor
    public UserVO(String username, String email) {
        this.username = username;
        this.email = email;
    }

    // Getter methods
    public String getUsername() {
        return username;
    }

    public String getEmail() {
        return email;
    }
}
  1. PO (Persistent Object):PO代表持久化对象,它通常用于与数据库表结构相对应的对象,用于在数据库和数据访问层之间进行数据转换。PO对象包含与数据库表中的列相对应的字段,并且通常具有与数据库操作相关的方法。

例子:

public class UserPO {
    private Long id;
    private String username;
    private String email;

    // Getter and setter methods
}

这些概念的使用可能会根据具体的应用和架构而不同,但通常它们用于实现数据传输、数据封装和数据持久化等功能。

一个简单的示例:

假设我们有一个用户表(user),包含以下字段:

id name gender age email
1 chang 1 18 chang@gmail.com

对应的PO类就是:

public class User {
    private int id;
    private String name;
    private String gender;
    private int age;
    private String email;
    // 省略getter和setter方法
}

假设我们有一个用户列表页面,只需要显示用户的id、name和email,那么我们可以定义一个UserDTO类:

public class UserDTO {
    private int id;
    private String name;
    private String email;
    // 省略getter和setter方法
}

假设我们有一个用户详情页面,需要显示用户的所有信息,以及用户所属的部门名称(department),那么我们可以定义一个UserVO类:

public class UserVO {
    private UserDTO userDTO; // 包含用户基本信息
    private String department; // 用户所属部门名称
    // 省略getter和setter方法
}

参考:

  1. Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图(转)_vo po 实例_bggl的博客-CSDN博客
  2. java中do,dto,vo,po的区别?
  3. Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图(转) - EasonJim - 博客园
  4. 一篇文章讲清楚VO,BO,PO,DO,DTO的区别
  5. 三分钟掌握POJO及其转换——PO、DO、DTO、VO
  6. PO、VO、BO、DTO通俗理解
上一篇下一篇

猜你喜欢

热点阅读