一、简单 Java 对象

1️⃣PO persistent object

持久对象。与数据库里表字段一一对应。PO是一些属性,以及set和get方法组成。一般情况下,一个表对应一个PO,直接与操作数据库的crud相关。

2️⃣VO view object/value object

表现层对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不。这根据业务的需要而定。对于页面上要展示的对象,可以封装一个VO对象,将所需数据封装进去。

3️⃣DTO data trasfer object

数据传输对象。主要用于远程调用等需要大量传输对象的地方。

比如一张表有 100 个字段,那么对应的 PO 就有 100 个属性。 但是界面上只要显示 10 个字段, 客户端用 WEB service 来获取数据,没有必要把整个 PO 对象传递到客户端,

这时就可以用只有这 10 个属性的 DTO 来传递结果到客户端,这样也不会暴露服务端表结构 . 到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为 VO。

4️⃣POJO plain ordinary java object/pure old java object

简单无规则 java 对象,纯的传统意义的 java 对象。

二、复杂 Java 对象

1️⃣BO/DO bussiness object/Domain Object

业务对象、域对象。封装业务逻辑的 Java 对象,通过调用 DAO 方法,结合 PO,VO 进行业务操作。一个BO对象可以包括多个PO对象。如常见的工作简历例子为例,简历可以理解为一个BO,简历又包括工作经历,学习经历等,这些可以理解为一个个的PO,由多个PO组成BO。

2️⃣DAO data access object

数据访问对象。此对象用于访问数据库。通常和 PO 结合使用,DAO 中包含了各种数据库的操作方法。通过它的方法,结合 PO 对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。

Java 中的 PO、VO、DTO、BO、POJO、BO/DO、DAO相关推荐

  1. Java 中的PO VO DTO BO

    PO 持久对象,数据: BO 业务对象,封装对象.复杂对象 ,里面可能包含多个类: DTO 传输对象,前端调用时传输 : VO 表现对象,前端界面展示. 当你业务足够简单时,一个POJO 也完全当做P ...

  2. PO,BO,VO,DTO和POJO的概念区分

    PO,BO,VO,DTO和POJO的概念区分 文章目录 PO,BO,VO,DTO和POJO的概念区分 POJO(plain ordinary java object) VO(View Object) ...

  3. PO VO DTO 转换神器替代BeanUtils 了

    PO VO DTO 1. MapStruct简介 2.0 MapStruct入门 2.0.1 简易demo 2.1. 引入依赖 2.2. 需要转换的对象 2.3. 创建转换器 2.4. 验证 2.5. ...

  4. Java中 实体类 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

    PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了.通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理.可以 ...

  5. Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)

    一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象,也就是说只有属性和setter和getter方法.使用Hibernate来生成PO是不错的 ...

  6. java中的PO、BO、VO、QO、POJO、DTO、DAO分别代表什么意思

    PO: persistant object持久对象 BO: business object业务对象 VO: value object值对象,ViewObject表现层对象 QO: 查询对象 POJO: ...

  7. bo JAVA是什么意思_entity、bo、vo、po、dto、pojo如何理解和区分?

    Java开发过程中,基本实体类包都以entity或者model来称呼,可是不少项目中,却以Bo.Vo来命名,面试的时候,也有可能被问到这些问题.那么,这几者分别代表什么意思呢? Entity 最常用实 ...

  8. VO的实际应用;后端接收前端传入的值;实体类转化VO;PO,VO,DTO,BO,DAO,POJO区别

    文章目录 各层转换流程 分层领域模型规约: 领域模型命名规约: 后端向前端传参 封装 前端向后台传参 封装 快速转换解决方案 参考 各层转换流程 分层领域模型规约: DO( Data Object): ...

  9. entity、bo、vo、po、dto、pojo如何理解和区分?

    Entity 最常用实体类,基本和数据表一一对应,一个实体一张表. Bo(business object) 代表业务对象的意思,Bo就是把业务逻辑封装为一个对象(注意是逻辑,业务逻辑),这个对象可以包 ...

最新文章

  1. SLAM知识[7]:依赖项和安装
  2. 实习随记-不定时更新
  3. 零基础学Python(第二十章 异常处理try)
  4. AD域机器如何指定时钟服务器,active-directory – 如何让我的域控制器与正确的外部时间源同步?...
  5. Spring Bean 后置处理器PostProcessor
  6. SQL Server创建索引(转)
  7. ListBox之随手放个控件
  8. uinty粒子系统子物体变大_新Unity 最新粒子系统如何用代码改变参数
  9. java 本年第一天_JAVA获取本周 本月 本年 第一天和最后一天
  10. 【PHP内核剖析】一、PHP基本架构
  11. ad19做直插封装 ipc_共享一下自己的PCB封装库(Altium Designer)
  12. Java并发练习:无锁编程
  13. 如何下载旧版本android NDK
  14. 至强服务器虚拟机黑苹果,[经验] AMD/Intel CPU VMware虚拟机安装黑苹果
  15. android文件地址,Android文件夹在哪
  16. EChat(简易聊天项目)一、登录注册实现
  17. 旭日图(Sunburst)
  18. 成为一名优秀黑客的12个基本步骤
  19. HDU4355-三分
  20. python一次性封装多条sql语句(begin end)

热门文章

  1. cic曲线是什么_国际经济学6章经济增长与国际贸易.ppt
  2. 最简单的理解lambda,map,reduce,filter,列表推导式
  3. c#的dllimport
  4. Python四则运算
  5. Debian 10 镜像资源
  6. 零基础JavaScript入门教程(2)–在网页中使用JS
  7. javascript-DOM基础教程
  8. 【论文阅读】Impact of Texture Information on Crop Classificationwith Machine Learning and UAV Images
  9. 基于Python+OpenCV的图像搜索引擎(CBIR+深度学习+机器视觉)含全部工程源码及图片数据库下载资源
  10. 考虑最周全的flutter短信验证登录模块