java项目中VO和DTO以及Entity,各自是在什么情况下应用的

来自:    更新日期:早些时候
如何理解《阿里巴巴Java开发手册》中提到的 DO/DTO/BO/VO/QUERY~

PO(persistant object) 持久对象
在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。
DO(Domain Object)领域对象
就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。
TO(Transfer Object) ,数据传输对象
在应用程序不同 tie( 关系 ) 之间传输的对象
DTO(Data Transfer Object)数据传输对象
这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。
VO(view object) 视图对象
视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
BO(business object) 业务对象
从业务模型的角度看 , 见 UML 元件领域模型中的领域对象。封装业务逻辑的 java 对象 , 通过调用 DAO 方法 , 结合 PO,VO 进行业务操作。 business object: 业务对象 主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 比如一个简历,有教育经历、工作经历、社会关系等等。 我们可以把教育经历对应一个 PO ,工作经历对应一个 PO ,社会关系对应一个 PO 。 建立一个对应简历的 BO 对象处理简历,每个 BO 包含这些 PO 。 这样处理业务逻辑时,我们就可以针对 BO 去处理。
POJO(plain ordinary java object) 简单无规则 java 对象
纯的传统意义的 java 对象。就是说在一些 Object/Relation Mapping 工具中,能够做到维护数据库表记录的 persisent object 完全是一个符合 Java Bean 规范的纯 Java 对象,没有增加别的属性和方法。我的理解就是最基本的 Java Bean ,只有属性字段及 setter 和 getter 方法!。
DAO(data access object) 数据访问对象
是一个 sun 的一个标准 j2ee 设计模式, 这个模式中有个接口就是 DAO ,它负持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和 PO 结合使用, DAO 中包含了各种数据库的操作方法。通过它的方法 , 结合 PO 对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合 VO, 提供数据库的 CRUD 操作
QUERY(query)查询对象

一般是封装了查询条件的对象。
满意请采纳,谢谢。

模型Model和DTO/VO的区别

在EJB应用中,经常会需要传输数据,所以我们需要DTO模式,但是在系统还没有复杂到一定程度时,我们碰到的基本是Model,是Model作为DTO,比如一个数据对象Product的增删改查,Session Bean传递给实体Bean的Product用来保存数据库,这个Product是一个Model,同时又是一个DTO。

那么我们在系统开始时,是以Model开始还是以DTO开始?

当然应该是Model,Model能够反应应用系统的很多本质,如果都使用DTO,将为了传输数据而组合一个对象,结果这个DTO对象的属性可能很混乱,最后在界面实现时或后台实现时,常常为这个DTO对象缺少一两个字段而烦恼。

以Model为驱动符合MDA思想,可以非常方便地实现整个复杂J2EE系统。

你好,按照标准来说:

1、entity里的每一个字段,与数据库相对应,

2、dto里的每一个字段,是和你前台页面相对应,

3、VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西。



DTO
Data Transfer Object数据传输对象
应用场景:
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

Entity 实体
实体bean ,一般是用于ORM 对象关系映射 ,一个实体映射成一张表,一般无业务逻辑代码。
如果是简单的java对象就是pojo,如果进行了持久化有了orm映射以后就是po。
po的作用简单的说就是将数据库中的表映射成java对象,就是属性对应数据库字段。

VO

主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。
比如在某页面上需要显示很多数据,但是一个po搞不定,这是你就可以自己定义Vo去处理了。


你抄别人的?是说那个被采纳的回答……


java项目中VO和DTO以及Entity,各自是在什么情况下应用的视频

相关评论:
  • 13643017051entity、DTO、VO
    支刮法VO(Value Object)主要用于表示数据值,它不包含任何业务逻辑,仅包含数据值本身。VO用于简化数据表示,可以是简单的数据集合或复杂对象的值。VO设计应关注数据的表示和一致性,确保数据在不同上下文中的一致性使用。在实际项目中,Entity、DTO和VO的使用取决于具体需求和团队约定。它们有助于实现数据的组织...

  • 13643017051dto和vo的区别
    支刮法在这种情况下可以实现,前后端相关的东西只有api的url和vo,而且大多数情况也是只有一个客户端的。2、DTO ≠ 视图模型 在一个DTO对应多个VO的时候,DTO ≠ 视图模型。此时需要在前端将男性打包成帅哥或者靓仔显示;请求数据时,也需要前端将帅哥或者靓仔转换成男性,以DTO形式请求服务端。

  • 13643017051浅析VO、DTO、DO、PO 的概念、区别和用处!
    支刮法在实际应用中,选择VO和DTO取决于具体场景。如果需求灵活且多个客户端有不同表现要求,应保持分离,以遵循职责单一原则。但在某些场景下,如数据传输量较小且不涉及分布式系统,可以考虑合并VO和DTO。DO(Data Object)和PO(Plain Old Java Object)通常是对应的,PO是只包含getter和setter方法的简单对象...

  • 13643017051JavaWeb 中 POJO、BO、VO、DO、DTO、DAO、PO 详细介绍
    支刮法POJO(Plain Ordinary Java Object,普通的Java对象)是一个广泛的概念,包括上述的PO、DO、VO和DTO,通常不直接以POJO命名。为什么要定义这些对象呢?主要是为了分层处理,减少数据传输量,保护数据库结构不泄露。例如,通过使用BO和DTO,前端只接收必要的数据,而避免暴露敏感信息。同时,DAO封装了数据库...

  • 13643017051一篇文章讲清楚VO,BO,PO,DO,DTO的区别
    支刮法首先,我们来关注核心概念DTO(Data Transfer Object),它主要在前后端交互中充当数据传输的角色,后端通常是Java对象,前端则表现为JavaScript对象。微服务场景下,如果服务间独立,可以视作DTO;否则,若服务不独立,就不能简单称为DTO,而是BO。VO(Value Object)则专注于展示数据,是用户能看到的,如...

  • 13643017051JavaBean,POJO,VO,DTO的区别和联系
    支刮法它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。一个POJO持久化以后就是PO。直接用它传递、传递过程中就是DTO 直接用来对应表示层就是VO ...

  • 13643017051java vo是什么意思?
    支刮法在Java中,VO指的是Value Object,也就是值对象。它是一种以面向对象的方式来描述数据模型的对象,其主要是用来存储数据和传递数据的。与其他Java对象相比,VO更加轻量级和简单,通常包含一些属性和一些简单的get\/set方法。在Java的企业级应用中,VO通常被用于表示从数据库或者其他数据存储系统中读取的数据...

  • 13643017051领域驱动系列-浅析VO、DTO、DO、PO
    支刮法1、VO与DTO的区别 概念上还是应该存在VO和DTO,因为两者有着本质的区别,DTO代表服务层需要接收的数据和返回的数据,而VO代表展示层需要显示的数据 2、DTO与DO的区别 DTO是展示层和服务层之间的数据传输对象(可以认为是两者之间的协议),而DO是对现实世界各种业务角色的抽象 3、DO与PO的区别 DO和PO...

  • 13643017051列VO是什么意思?
    支刮法VO是什么?简单地说,VO即为Value Object的缩写,中文意为“值对象”。在编程中,它是一种用来存储多个值或属性的对象,通常用于数据传递或作为其他对象的属性。VO的应用范围很广泛,不仅仅局限于前端开发。在后端开发中,对象的数据传递也需要使用VO。在Java开发中,VO通常与DTO(Data Transfer Object)...

  • 13643017051一款IDEA 插件帮你优雅转化 DTO、VO、BO、PO、DO
    支刮法在Java开发中,POJO(Plain Old Java Object)的使用场景多种多样,通常会根据业务需求分化为VO(View Object)、BO(Business Object)、PO(Persistent Object)、DTO(Data Transfer Object)和DO(Domain Object)。VO,作为表示层对象,主要负责前端展示的数据,例如,接口返回给前端的数据会经过转换为VO...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网