DAO、DTO、PO、POJO、BO、VO、AO基本概念
一、基本概念:
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基本概念相关推荐
- 概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解
在java开发过程中,新手总是被DAO.PO.BO.VO等等概念弄得晕头转向. 下面我查找了很多资料,总结如下: 一.POJO(Plain Ordinary Java Object 简单Java对象) ...
- 关于POJO 即DO/DTO/BO/VO/AO说明
1.POJO 是 DO/DTO/BO/VO/AO 的统称 DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象. DTO( Data Transfer Object ...
- java qo_Java中DAO/DTO/PO/VO/BO/QO/POJO
ORM:是Object Relational Mapping(对象关系映射)的缩写. 通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R/M的世界里,有两个基本的也是重要的东东需要了 ...
- PO/POJO/BO/DTO/VO的区别
https://www.cnblogs.com/yeyuchangfeng/p/4546138.html PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据 ...
- PO/POJO/BO/DTO/VO的区别【转】
PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中 ...
- 什么是DO / DTO / BO / VO /AO ?
POJO 是 DO / DTO / BO / VO 的统称. DO(Data Object) :此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象. DTO(Data Transfer ...
- POJO/DO / DTO / BO / VO /AO
POJO:(Plain Ordinary Java Object)简单的Java对象 DO:(date object)-数据访问层对象 DTO:(data transfer object) 数据传输对 ...
- Java基础 - AO BO DO PO VO DAO DTO POJO
Java基础 - AO BO DO PO VO DAO DTO POJO AO Application Object 应用对象. 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复 ...
- 领域模型 PO、VO、DAO、BO、DTO、POJO
<阿里巴巴Java开发规范> 关于领域模型的部分介绍如下: 分层领域模型规约: DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象. DTO( ...
最新文章
- php sql count函数,SQL COUNT() 函数
- python经典问题在stack overflow上的回答
- oracle自动选择索引
- 虚幻四如何实现第一人称_虚幻周报20200930 | 双节快乐么么哒!
- Openlayer 3 的画图测量面积
- 吃透web前端秘籍,来听听大佬是怎么说的
- tomcat版本区别
- 索爱小蜜蜂扩音器怎么样啊~
- 芝麻小客服怎么进后台?
- 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
- 迅捷PDF转Word转换器
- 保洁阿姨看完都会了!熬夜肝完这份Framework笔记,吐血整理
- Arduino的密码锁
- pandas选取excel特定两列,上下行数值相减,降采样,缺失值处理,按数值范围去除行的处理,在pycharm画图实例
- 安装VMware Workstation 16.1
- 《激荡三十年》——来了解我们的时代
- 嵌入式项目开发流程概述
- MathType开学季,半价倾情奉献
- 解决npm没有权限的问题
- Jina AI 她力量 | Impact Tech, She Can