DTO-VO-DO-Query理解

POJO/PO/DO/Entity/DTO/VO/Query个人理解

  • POJO:Plain Ordinary Java Object,普通java对象。
  • PO:Persistent Object,持久化对象。
  • DO:Data Object,数据对象。
  • Entity:实体对象。
  • DTO:Data Transfer Object,数据传输对象。
  • VO:View Object,视图对象。
  • Query:数据查询对象。

POJO:POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
PO/DO/Entity:三者是一个东西,与数据库结构一一对应,通过DAO(Mapper)层向上传输数据。
DTO:Service层向外传输的数据对象。
VO:Controller层返回给前端的对象。
Query:各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。

后端接收前端

​ 有的人认为前端给后端传是视图层的交互,应该用VO,但也有人认为是接收的参数,应该用DTO。两个我都用过,现在感觉第一种更合理,改为使用VO。

DTO和VO

​ 对于绝大部分的应用场景来说,DTO和VO的属性值基本是一致的,只用其一即可。两者都用的场景,比如:1-男,2-女。需要映射处理,如果在服务层处理,在设计层面从职责单一原则来看,服务层只负责业务,与具体的表现形式无关,返回的DTO,不应该出现与表现形式的耦合。

领域模型命名规约

  • 数据对象:xxxDO,xxx即为数据表名。
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DTO(Data Transfer Object)是用于在不同层之间传输数据的对象,它表示VO(View Object)和Entity(实体)之间的中间转换对象。DTO包含了VO或Entity对象的属性,并用于前端传递数据到后端进行处理和保存。反之亦然,DTO也可以将后端处理后的数据传递给前端展示。\[1\] Entity是指与数据库中的表相对应的实体类,它包含了与表中字段对应的属性。在某些情况下,Entity可能无法满足前端页面所需的数据,这时可以创建一个DTO来扩展Entity的属性,以满足需求。例如,在查询用户信息和账号订单数量的需求中,可以创建一个继承用户信息Entity的DTO,并扩展订单数量属性,以便返回给前端所需的数据。\[2\] VO(View Object)是用于在前端页面展示数据的对象。在某些情况下,DTO中的数据可能无法直接在前端页面显示,需要进行一些转换。例如,DTO中存储的性别是数字0和1,但前端页面需要显示为男和女,这时可以创建一个VO,将DTO转换为VO,并将其中的性别属性转换为对应的汉字,以便返回给前端展示。\[2\] Query是指用于查询数据库的操作,可以根据需求编写相应的查询语句来获取所需的数据。在DTO和Entity之间的转换过程中,可以使用Query来查询数据库并将查询到的数据放入DTO中,以便进行后续的数据处理和返回。\[2\] 综上所述,DTO用于在不同层之间传输数据,Entity表示与数据库表对应的实体类,VO用于前端页面展示数据,Query用于查询数据库获取数据。它们在数据传递和处理过程中起到了不同的作用。 #### 引用[.reference_title] - *1* [后端中dto、vo、entity的区别](https://blog.csdn.net/qq_56769991/article/details/125299866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [DTO、VO、Entity的区别](https://blog.csdn.net/weixin_45056780/article/details/125293579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值