发布于 

java 中的 dto、dao、vo、bo、do、po、pojo_dto dao区别

一、如何认识 pojo

        POJO(Plain Old Java Object)是指普通的 Java 对象,它是一个简单的 Java 类,通常没有实现特定的接口或继承特定的类。POJO 对象的设计原则是简单、普通、纯粹的 Java 对象,不依赖于特定的框架或技术。

        POJO 对象通常用于封装数据,它可以包含一些私有字段(属性)和公共的 getter 和 setter 方法,用于对属性进行读写操作。POJO 对象通常不包含业务逻辑,主要用于传输数据、数据存储和数据交换。

在 Java 开发中,POJO 对象被广泛应用于各种场景,例如:

  1. 数据传输:POJO 对象用于在不同层之间传输数据,如在业务逻辑层(Service 层)和表示层(Presentation 层)之间传输数据。
  2. 数据存储:POJO 对象用于封装数据库中的数据,通常用于与数据库进行交互的 ORM(对象关系映射)操作。
  3. 数据交换:POJO 对象用于与外部系统进行数据交换,如与其他服务进行 RESTful API 调用、与消息队列进行数据传输等。
  4. 单元测试:由于 POJO 对象通常不依赖于外部环境,因此在单元测试中往往可以更加方便地创建和操作 POJO 对象。

二、分别解释 dto、dao、vo、bo、do、po

1.DTO

        Data Transfer Object:数据传输对象,DTO 用于在不同层之间传输数据,它通常用于将业务逻辑层(Service 层)的数据传输给表示层(Presentation 层)或持久化层(Persistence 层)。DTO 对象通常包含业务领域的数据,但不包含业务逻辑。

2.dao

        Data Access Objects:数据访问对象, DAO 用于封装数据访问逻辑,它负责与数据库进行交互,执行 CRUD(创建、读取、更新、删除)操作。DAO 对象通常封装了数据库访问的细节,使业务逻辑层能够更加简洁地操作数据。

3.vo

Value Object:值对象,VO 也是用于数据传输的对象,类似于 DTO,但 VO 通常更加专注于视图层的数据展示。VO 对象通常包含了在前端页面展示所需的数据。屏蔽掉密码、创建时间、状态等敏感信息

4.bo

Business Object:业务对象层,BO 用于封装业务逻辑,它通常包含了一系列的业务方法,用于实现业务规则和业务流程。BO 对象通常会调用 DAO 对象来实现数据的持久化和访问。

5.do

Domain Object: 领域对象,通常用于表示业务领域中的实体或业务对象。DO 对象通常包含了业务逻辑和数据,是业务逻辑的实体表示。在某些情况下,DO 对象可能与 PO 对象相似,但它们的用途和含义不同。DO 对象通常用于表示业务领域中的复杂业务逻辑和业务实体。

6.po

Persistant Object :持久对象,通常用于表示与数据库中的表(或文档)相映射的 Java 对象。PO 对象的属性对应数据库表的字段,每个 PO 对象通常表示数据库中的一条记录。PO 对象通常用于 ORM(对象关系映射)框架中,如 Hibernate、MyBatis 等。

三、补充

        这些对象在 Java 开发中常用于不同的层次和场景,有助于将数据、业务逻辑和持久化操作进行有效地分离和组织。在实际应用中,根据具体的需求和设计理念,可以选择合适的对象模型来实现业务功能。

        一般开发过程中,还存在 entity、model、bean 等对象

        Entity: 指的是 java 实体,在软件开发中,实体通常用于表示现实世界中的具体对象或概念,如用户、订单、产品等。在 JPA(Java Persistence API)或 ORM(对象关系映射)框架中,实体通常指的是与数据库表相对应的 Java 对象,用于表示数据库中的一条记录。实体对象通常包含与数据库表字段对应的属性,以及对应的 getter 和 setter 方法。

        Model(模型): 模型通常用于表示数据的抽象或规范,它可以是一种设计模式、数据结构或规则。在 MVC(Model-View-Controller)架构中,模型用于表示应用程序的业务逻辑和数据。在这种情况下,Model 对象通常用于封装业务逻辑、处理数据操作和传递数据给视图(View)层。Model 对象可以是实体对象、DTO(数据传输对象)或其他业务对象。

        Bean(Java Bean): Java Bean 是一种符合特定规范的 Java 类,它通常包含私有的属性、公共的无参构造方法、getter 和 setter 方法,并且可以序列化。Java Bean 通常用于封装数据和行为,是一种可重用、可扩展的组件。Bean 可以用于表示实体对象、业务对象、数据传输对象等,它们通常是轻量级的、不包含业务逻辑的数据对象。