IT 开发常见 英文简称 VO, BO, PO的讲解
vo=持久对象, 与数据库表一一对应
bo=业务对象, 来自vo, 但是是跟表单一一对应, 是vo满足业务逻辑的特殊实现, 就是说可能多个bo都来自同一个bo
VO和PO的主要区别在于:
Ø VO是独立的Java Object。
Ø PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数
据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实
际数据库中。
比如说, Process是一个很大的vo, 但是AaaProcess是一个Aaa表单用的JavaBean, 只需要Process中的3个字段, 又需要来自别的地方的1个字段, 比如, 是否去重, 显然"是否去重"这个字段是不能加到数据库表里面去的, 所以不能加到vo里面去, 只能在AaaProcess里面体现
java的几种对象(PO,VO,DAO,BO,POJO)解释
一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
三、DAO:data access object 数据访问对象,此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。
四、BO:business object 业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
五、POJO:plain ordinary java object 简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它。
PO:
persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
BO:
business object业务对象
主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、 关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO, 关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。
VO :
value object值对象
ViewObject表现层对象
主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。
DTO :
Data Transfer Object数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO
POJO :
plain ordinary java object 简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。
一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO
DAO:
data access object数据访问对象
这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO
总结下我认为一个对象究竟是什么O要看具体环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。就像你对老婆来说就是老公,对父母来说就是子女。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各种逻辑,让大家能更好的去用面向对象的方式处理问题.社会社会
我说的VO是持久对象, 是因为我认为hibernate生成的对象已经是抽象对象了, 而不是简单地数据库表一一对应
如果是标准T-SQL的查询结果, 就是和表一一对应的, 才是真正的PO
风中追风 14:24:08
而我们这个项目, 持久都交给hibernate来做了, 所以PO没有了, 所以VO就是PO
但是我认为VO应该跟数据库更接近, 而BO(业务对象)和WEB(表现层)更接近
IT 开发常见 英文简称 VO, BO, PO的讲解相关推荐
- java web分层和层间数据传递 vo bo po (转载)
还记得97年左右开始的胖客户机和瘦客户机之争吗?之后又是CS和BS之争,然后又是两层和多层之争...,十年之后的今天我们再回过头看这些争论,一切似乎看起来都那么理所应当:程序怎么能不分层啊?可是再想一 ...
- java web分层和层间数据传递 vo bo po
还记得97年左右开始的胖客户机和瘦客户机之争吗?之后又是CS和BS之争,然后又是两层和多层之争...,十年之后的今天我们再回过头看这些争论,一切似乎看起来都那么理所应当:程序怎么能不分层啊?可是再想一 ...
- POJO/DTO/DO/EO/VO/BO/PO/AO的含义和使用
关于POJO/DTO/DO/EO/VO/BO/PO/AO 本文讨论 POJO/DTO/DO/EO/VO/BO/PO/AO 的定义,另外讨论了这些xO在controller.service.dao/ma ...
- VO BO PO DO DTO DAO POJO概念及区别
VO BO PO DO DTO DAO POJO 概念及区别 1.VO( value object) 即值对象 VO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看 ...
- 转贴一个关于DTO DAO VO BO PO POJO的^_^
DTO DAO VO BO PO POJO- - potian 写道: 辨别一些名词: 1.VO:实际上很模糊,通常指ValueObject和ViewObject 2. ViewObject,界面展现 ...
- vo bo po dao pojo dto
DAO: data access object数据访问对象 这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要. 主要用来封装对数据库的访问.通过它可以把POJO持久化为PO,用PO ...
- 【转】VO BO PO 介绍
原文链接:http://www.cnblogs.com/zander/archive/2012/08/11/2633344.html PO(persistant object)(个人理解:就是数据库模 ...
- PM,RD,FE,UE,UI,QA等开发常见部门简称
PM 项目经理( Project Manager ) 从职业角度,是指企业建立以项目经理责任制为核心,对项目实行质量.安全.进度.成本管理的责任保证体系和全面提高项目管理水平设立的重要管理岗位.项目经 ...
- DTO DAO VO BO PO POJO区别
1.VO:实际上很模糊,通常指ValueObject和ViewObject 2. ViewObject,界面展现需要的对象,如Struts的FormBean 3.Value Object,早期被作为V ...
最新文章
- popover带箭头弹框
- 小样本学习(Few-shot Learning)综述
- Oracle基础语句
- zabbix 搭建 mysql 连接报错
- 女孩们,当你说没有好男人时请进来看看!
- mysql菜鸟手迹1--安装及目录介绍
- j2me on android,J2ME和Android的几个基本区别
- 【3dmax千千问】初学3dmax插件神器第17课|VRAY渲染教程|哪三种表现方式最能影响3dmax疯狂模渲大师设计效果图的写实程度?食住玩3dmax入门到精通进阶教程
- Python机器学习:基于西瓜数据集的KNN算法实现
- js控制flash播放器
- uva10099+uvauva10048
- mysql 数据库健康巡检 报告
- android room表关联,Android Room的用法
- 30分钟简易复刻元气骑士地图生成系统
- 如何在头条做营销:2022今日头条营销价值洞察报告.pdf(附下载链接)
- 计算机主流处理器介绍,现在电脑主流配置有哪些 2017主流电脑配置清单一览表...
- Mavenir被以色列Partner选为下一代网络
- python金融量化分析 | 闲杂笔记
- 不能打开要写入的文件,软件安装不上解决方法
- 强烈推荐 DELPHI 程序员用 KOL+MCK