PO BO VO DTO POJO DAO DO

目录


↑ https://www.yuque.com/u12481951/im56n0/cmkm0d

来源:https://www.zhihu.com/question/39651928/answer/369889819

PO: Persistant Object
数据库中的表相映射的java对象
仅用于表示数据,没有任何数据操作
遵守 Java Bean 的规范,拥有 getter/setter 方法。

DAO:Data Access Object
表示一个数据访问对象
用 DAO 访问数据库,包括插入、更新、删除、查询
与 PO 一起用
DAO 一般在持久层,完全封装数据库操作
对外暴露的方法 使得上层应用不需要关注数据库相关的任何信息。

VO:Value Object
与前端进行交互的 java 对象。
这里可不可以使用 PO 传递数据?实际上,这里的 VO 只包含前端需要展示的数据即可,对于前端不需要的数据,如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来
通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

DTO:Data Transfer Object
用于表示一个数据传输对象
DTO 通常用于不同服务或服务不同分层之间的数据传输。
DTO 与 VO 概念相似,并且通常情况下字段也基本一致。但 DTO 与 VO 又有一些不同,如 API 服务需要使用的 DTO 就可能与 VO 存在差异。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

BO:Business Object
用于表示一个业务对象
BO 包括了业务逻辑,常封装了对 DAO、RPC 等的调用,可以进行 PO 与 VO/DTO 之间的转换
BO 通常位于业务层,要区别于直接对外提供服务的服务层:BO 提供了基本业务单元的基本业务操作,在设计上属于被服务层业务流程调用的对象,一个业务流程可能需要调用多个 BO 来完成

POJO:Plain Ordinary Java Object
表示一个简单 java 对象
上面说的 PO、VO、DTO 都是典型的 POJO。而 DAO、BO 一般都不是 POJO,只提供一些调用方法。

实例

对于面试题存在数据库中:
数据表:1编号、2题目、3选项、4答案、5创建时间、6修改时间
PO:1题目、2选项、3答案、4创建时间、5修改时间
VO:1题目、2选项、3答案、4上一题URL、5下一题URL
DTO:1编号、2题目、3选项、4答案、5上一题编号、6下一题编号
DAO:数据库增删改查
BO:业务基本操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值