VO BO PO

PO(persistant object)(个人理解:就是数据库模型 通过映射 转化成的 持久化类 model)
持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
VO(value object) 值对象 (个人理解:便于使用在po的基础上进行又一次加工而产生的对象)
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
BO(business object) 业务对象(个人理解:便于使用在vo的基础上进行 业务逻辑的 加工 后产生的类 service 层)
从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
下边是我理解中的架构
--------------数据库
--------------model层
PO(persistant object)(个人理解:就是数据库模型 通过映射 转化成的 持久化类 model)
持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
VO(value object) 值对象 (个人理解:便于使用在po的基础上进行又一次加工而产生的对象)
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
--------------dao层
使用po vo对数据库进行的简单的操作 例如增删改查。。。。。
--------------service层
BO(business object) 业务对象(个人理解:便于使用在vo的基础上进行 业务逻辑的 加工 后产生的类 service 层)
从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。

-------------Controller层

利用service层的类进行实际的业务逻辑处理.

-------------View层
展示通过业务逻辑产生的一些列数据
时间: 2024-11-03 21:56:44

VO BO PO的相关文章

JavaEE PO VO BO DTO POJO DAO 整理总结

阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 4.BO[bussiness object]业务对象 5.VO[value object]值对象 4.POJO[plain ordiary java object] 简单java对象         佩服能将复杂难懂的技术,抽象成简单易懂事物的人.         厌恶将简单易懂的技术,添加一堆专业

SSH框架里面的VO和PO问题

问题描述 基本概念我也知道,但是没怎么做过项目.一般用vo继成po,,这样vo比po多几个字段.但是我想知道这几个字段能起到很么作用?谁有实际项目中的例子?简单清晰就好. 解决方案 解决方案二:子类继承父类,继承的父类的特性,自己特有的特性,还得自己定义..解决方案三:这是我总结的领域模型的应用场景,图片版权所有.解决方案四:vo是面向数据库的,po是解决方案五:vo是面向表现层,po是面向数据库,po中的字段与数据库对应,不能随意更改.vo中的字段与页面对应,可以根据需要做更改解决方案六:告诉

Java分层 service/action/DAO 总结

Java分层概念 service是业务层 action层即作为控制器 DAO (Data Access Object) 数据访问   1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分?(下面所描述的service层就是biz)        首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类. Dao层是使用了Hibernate连接数据库.操作数据库(增删改查). Service(biz)层:引用对应的Dao数据库操作,

Struts2编程规范的一个问题?

问题描述 packagecom.bird.action;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjavax.persistence.criteria.CriteriaBuilder.In;importjavax.servlet.ServletException;importjava

【springmvc+mybatis项目实战】杰信商贸-20.合同货物数和附件数

我们上一篇完成了购销合同.货物以及附件的级联删除,这次我们需要做的业务就是----要求直接显示合同下的货物数和附件数 上一次我们遗留的问题: 我们每次删除完都要去下一级或者数据库看看我们删除了没有,我们可以直接在合同列表中显示每个合同下的货物以及货物的附件有多少件,这样就避免了反复去下一级查看列表的繁琐操作. 那么下面我们使用SQL来编写获取合同下的货物数: select count(*) from contract_product_c where contract_id='928eb2ae-2

SSH组合开发中,Hibernate中,主表与从表数据更新

问题描述 SSH组合开发中,Hibernate中,主表与从表数据更新 在Hibernate中,我需要更新一条主表的数据,但同时更新多条从表的数据!我最初的构思是,用主表PO类中的Set从表集合,与从jsp中获取的更新从表数据相对比,相同的删除,不相同的添加,同时,把Set集合中的数据相同的留下,不相同的删除. 这是代码: /* * 先查询一条商品属性表的信息 * 将Vo转换为Po * 根据vo类中的ProductCategoryid字段查询需要查询一个商品类型表(CyProductCategor

发布一个可动态映射的持久层

问题描述 下载地址http://download.csdn.net/source/2804912文档地址http://download.csdn.net/source/2804917与Hibernate的比较性能:CatFramework实现了VO的属性的版本管理,只有发生变化的字段才更新数据库,比如:User表有Id,Name,Sex三个字段,用户在修改时,只修改了Name,那么生成的sql语句只有updateUsersetName=?whereId=?而不是更新所有.这与Hibernate的

dozer与BeanUtils

呵呵,在<develope J2EE without EJB>中,DTO被狠很地批判了一把,rod说这完全是反模式.可实际项目当中,我们还是不得不在使用.VO,PO,一牵扯到概念总是多么复杂...把一个PO从头传到尾??从页面到数据库,一捅到底?NO,NO,万一你要显示给用户的是几个PO的结合怎么办?万一我们只是需要某几个属性组合在一起显示怎么办?一捅到底的策略是多么丑陋,而且你完全把你的数据库设计模型暴露给用户.所以我们需要一些map工具来转换,在这方面,过去我只知道有个 BeanUtils

&amp;amp;quot;MVC&amp;amp;quot; 在次对其迷惑了

问题描述 刚学J2EE企业级应用的时候几乎所有人都谈到MVC那时候学JSP+SERVLET+JAVABEAN的过程,正好符合MVC三层,也自以为了解了后来看了<企业应用架构模式>,MF讲解J2EE企业应用分为 表现层-领域曾-数据层,我开始迷惑(姑且认为是V-C-M)吧等后来了解了SSH,发现不对劲了,按照MF的讲解,C层用来隔离VIEW层与MODEL层,为VIEW层的请求分配处理单元,并将V层数据封装成MODEL供处理单元处理,那可见在SSH中Struts的JSP为V,ActionServl