一、基本概念:

DAO:Data access object 数据库访问对象

主要用来封装对数据库的访问,通过它可以把POJO持久化为PO,用PO组装出来VO、DTO。

DTO:Data Transfer Object数据传输对象

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

PO:persistent Object 持久对象

有时也称Data对象,对应数据库中的Entity,简单的可以认为一个PO对应数据库的一个条记录。

BO:Bussiness Object对象

业务对象主要作用是把业务逻辑装为一个对象,这个对象可以包括一个或多其他对象。形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作。比如处理一个人的业务逻辑,有睡觉,吃饭,工作,上班等等形为还有可能和别人发关系的形为。这样处理业务逻辑时,我们就可以针对BO去处理。

关于BO主要有三种概念:

  • 只包含业务对象的属性
  • 只包含业务方法
  • 两者都包含

VO:Value Object 值对象

主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。

AO:Application Object

应用对象,在Web层与Service之间抽象的复用对象。

POJO:Plain Ordinary Java Object(POJO是一种概念或者接口,身份及作用随环境变化而变化) :

POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口。即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。 一个POJO持久化以后就是PO 。直接用它传递、传递过程中就是DTO,直接用来对应表示层就是VO 。

二、《阿里巴巴Java开发规范》关于领域模型的部分介绍如下:

分层领域模型规约:

  • DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。

  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。

  • BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。

  • AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的复用对象模型, 极为贴近展示层,复用度不高。

  • VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。

  • Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止

    使用 Map 类来传输。

三、转换图:

四:常见的转换方法:

(1)一种是通过IDEA插件实现快速自动生成转换代码.

Generate All setters插件,参见https://blog.csdn.net/w605283073/article/details/89163627

定义好参数和返回值,使用快捷方式可以轻松生成转换的代码。

(2)一种是通过第三方转换库来转换。

  • Apache org.apache.commons.beanutils.PropertyUtils.copyProperties
  • Apache org.apache.commons.beanutils.BeanUtils.copyProperties
  • Spring org.springframework.beans.BeanUtils.copyProperties
  • Cglib BeanCopier
  • Dozer
  • orika

原文链接:

https://blog.csdn.net/w605283073/article/details/89715188

https://blog.csdn.net/zl19861225/article/details/84410984

DAO、DTO、PO、POJO、BO、VO、AO基本概念相关推荐

  1. 概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解

    在java开发过程中,新手总是被DAO.PO.BO.VO等等概念弄得晕头转向. 下面我查找了很多资料,总结如下: 一.POJO(Plain Ordinary Java Object 简单Java对象) ...

  2. 关于POJO 即DO/DTO/BO/VO/AO说明

    1.POJO 是 DO/DTO/BO/VO/AO 的统称 DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象. DTO( Data Transfer Object ...

  3. java qo_Java中DAO/DTO/PO/VO/BO/QO/POJO

    ORM:是Object Relational Mapping(对象关系映射)的缩写. 通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R/M的世界里,有两个基本的也是重要的东东需要了 ...

  4. PO/POJO/BO/DTO/VO的区别

    https://www.cnblogs.com/yeyuchangfeng/p/4546138.html PO :persistent object持久对象  1 .有时也被称为Data对象,对应数据 ...

  5. PO/POJO/BO/DTO/VO的区别【转】

    PO :persistent object持久对象  1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录.  2 .在hibernate持久化框架中 ...

  6. 什么是DO / DTO / BO / VO /AO ?

    POJO 是 DO / DTO / BO / VO 的统称. DO(Data Object) :此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象. DTO(Data Transfer ...

  7. POJO/DO / DTO / BO / VO /AO

    POJO:(Plain Ordinary Java Object)简单的Java对象 DO:(date object)-数据访问层对象 DTO:(data transfer object) 数据传输对 ...

  8. Java基础 - AO BO DO PO VO DAO DTO POJO

    Java基础 - AO BO DO PO VO DAO DTO POJO AO Application Object 应用对象. 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复 ...

  9. 领域模型 PO、VO、DAO、BO、DTO、POJO

    <阿里巴巴Java开发规范> 关于领域模型的部分介绍如下: 分层领域模型规约: DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象. DTO( ...

最新文章

  1. php sql count函数,SQL COUNT() 函数
  2. python经典问题在stack overflow上的回答
  3. oracle自动选择索引
  4. 虚幻四如何实现第一人称_虚幻周报20200930 | 双节快乐么么哒!
  5. Openlayer 3 的画图测量面积
  6. 吃透web前端秘籍,来听听大佬是怎么说的
  7. tomcat版本区别
  8. 索爱小蜜蜂扩音器怎么样啊~
  9. 芝麻小客服怎么进后台?
  10. 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
  11. 迅捷PDF转Word转换器
  12. 保洁阿姨看完都会了!熬夜肝完这份Framework笔记,吐血整理
  13. Arduino的密码锁
  14. pandas选取excel特定两列,上下行数值相减,降采样,缺失值处理,按数值范围去除行的处理,在pycharm画图实例
  15. 安装VMware Workstation 16.1
  16. 《激荡三十年》——来了解我们的时代
  17. 嵌入式项目开发流程概述
  18. MathType开学季,半价倾情奉献
  19. 解决npm没有权限的问题
  20. Jina AI 她力量 | Impact Tech, She Can

热门文章

  1. 如何开发HTML编辑器
  2. 每日一练-10-求矩阵主对角线及副对角线元素的和
  3. Excel 根据序号分组
  4. Excel 分组显示(COUNTIF 函数实现)
  5. python excel文件换题头
  6. wxPython in Action 学习笔记一
  7. PIX for Windows使用
  8. 罗切斯特大学排名计算机排名,2020年罗切斯特大学QS世界排名
  9. 如何提高外贸询单转化率
  10. ESP32设备驱动-BMP180气压温度传感器驱动