`
zjx2388
  • 浏览: 1330671 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

VO,PO,TO,BO,POJO,DAO解释

    博客分类:
  • J2SE
阅读更多

 

O/R Mapping:Object Relational Mapping

将对象与关系数据库绑定,用对象来表示关系数据。

 

VO:Value Object值对象

PO:Persisent Object持久对象

 

由一组属性和属性的get和set方法组成

 

1.VO是用new关键字创建,由GC回收的

PO是向数据库中添加新数据时创建,删除数据库中的数据时削除的。并且只能存活在一个数据库连接中,断开连接即被销毁

 

2.VO是值对象,业务对象,存活在业务层,是业务逻辑使用的,存活的目的就是为数据提供一个生存的地方。PO则是有状态的,每个属性代表其当前的状态。它是物理数据的对象表示。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换。

 

3.VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。PO的属性是跟数据库表的字段一一对应的。

 

PO对象需要实现序列化接口

 

------------------------------

 

PO是持久化对象,它只是将物理数据实体的一种对象表示,可以简化我们对于物理实体的了解和耦合,可心简化对象的数据转换为物理数据的编程。VO是值对象,是业务对象,是生活在业务层的,是业务逻辑需要了解,需要使用的,再简单地讲,安是概念模型转换得到的。

PO和VO,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(属性)。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。又正因为这样,业务逻辑层也独立开来,它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理。如果我们没有使用数据持久层,或者说没有使用hibernate,那么PO和VO也可以是同一个东西,虽然这并不好。

 

------------------------------------

 

PO(persistant object)持久对象

在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中的某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。

 

VO(value object)值对象

通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要,个人觉得同DTO(数据传输对象),在web上传递。

 

TO(Transfer Object)数据传输对象

在应用程序不能tie(关系)之间传输的对象

 

BO(business object)业务对象

从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。

 

POJO(plain ordinary java object)简单无规则java对象

纯的传统意义的java对象。就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法。

 

DAO(data access object)数据访问对象

是sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,它负责持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在于业务逻辑死心塌地数据库资源中间。配合VO,提供数据库的CRUD操作

 

O/R Mapper 对象/关系 映射

定义好所有的mapping之后,这个O/R Mapper可以帮我们做很多的工作。通过这些mappings,这个O/R Mapper可以生成所有的关于对象保存,删除,读取的SQL语句,我们不再需要写那么多行的DAL代码了

 

实体Model(实体模式)

DAL(数据访问层)

IDAL(接口层)

DALFactory(类工厂)

BLL(业务逻辑层)

BOF Business Object Framework 业务对象框架

SOA Service Orient Architecture 面向服务的设计

EMF Eclipse Model Framework Eclipse建模框架

 

----------------------------------

 

 

PO:persistant object持久对象

最形象的理解就是一个PO就是数据库中的一条记录

好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

 

BO:business object业务对象

主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。

比如一个简历,有教育经历、工作经历、社会关系等等。

我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。

这样处理业务逻辑时,我们就可以针对BO去处理。

 

VO:value object值对象

View Object表现层对象

主要对应界面显示的数据对象。对于一个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

 

--------------------------------

 

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应该都属于它。

 

---------------------------------

 

VO:值对象、视图对象

PO:持久对象

QO:查询对象

DAO:数据访问对象

DTO:数据传输对象

 

--------------------------------

 

struts里的ActionForm就是个VO;

hibernate里的实体bean就是个PO,也叫POJO;

hibernate里的Criteria就相当于一个QO;

在使用hibernate的时候我们会定义一些查询的方法,这些方法写在接口里,可以有不同的实现类。而这个接口就可以说是个DAO。

个人认为QO和DTO差不多。

 

-----------------------------------

 

 

PO或叫BO,与数据库最接近的一层,是ORM中的O,基本上是数据库字段对应BO中的一个属性,为了同步与安全性的考虑,最好只给DAO或者Service调用,而不要用packcode,backingBean,或者BO调。

DAO,数据访问层,把VO,backingBean中的对象可以放入。。

DTO,很少用,基本放入到DAO中,只是起到过渡的作用。

QO,是把一些与持久性查询操作与语句放入。。

VO,V层中用到的基本元素与方法等放其中。如果要其调用BO,则要做BO转换VO,VO转换BO操作。VO的好处是其页面的元素属性多于BO,可起到很好的作用。。

 

----------------------------------

 

楼上的不对吧,PO是持久化对象。BO=business object-业务对象。

PO可以严格对应数据库表,一张表对映一个PO。

BO则是业务逻辑处理对象,我的理解是它装潢了业务逻辑的处理,在业务逻辑复杂的应用中有用。

VO:value object值对象、view object视图对象

PO:持久对象

QO:查询对象

DAO:数据访问对象——同时还有DAO模式

DTO:数据传输对象——同时还有DTO模式


分享到:
评论

相关推荐

    Java中 PO VO BO DTO DAO 和 POJO 关系图

    Java中 PO VO BO DTO DAO 和 POJO 关系图

    关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释

    "关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释" 在 Java 中,PO、VO、TO、BO、DAO、POJO 是六个重要的概念,它们之间存在着紧密的关系,本文将对它们进行详细的解释。 首先,PO(Persistent Object)是...

    Java的(PO,VO,TO,BO,DAO,POJO)解释

    "Java的(PO,VO,TO,BO,DAO,POJO)解释" Java作为一门流行的编程语言,在软件开发中扮演着重要角色,其中一些关键概念和技术为开发者提供了方便快捷的开发体验。本篇文章将对Java中的PO、VO、TO、BO、DAO、POJO等概念...

    java术语(PO/POJO/VO/BO/DAO/DTO)

    本文将详细解析"PO/POJO/VO/BO/DAO/DTO"这六个概念,并探讨它们在实际项目开发中的作用和应用场景。 1. PO(Persistent Object,持久化对象) PO是指与数据库表结构一一对应的Java对象,它通常包含了数据库表中的...

    Java的几种对象(PO-VO-DAO-BO-POJO)解释

    ### Java的几种对象详解:PO-VO-DAO-BO-POJO #### 一、PO:Persistant Object(持久对象) 持久对象(Persistent Object,简称PO),主要用于与数据库中的表进行映射。一个简单的PO对象可以代表数据库表中的一条...

    java的几种对象(PO_VO_DAO_BO_POJO)解释

    简称PO)、值对象(Value Object,简称VO)、数据访问对象(Data Access Object,简称DAO)、业务对象(Business Object,简称BO)和平凡的Java对象(Plain Ordinary Java Object,简称POJO)。这些对象在不同的场景...

    java(PO,VO,BO,DAO,POJO)Explained Collection

    Java开发中,PO(Persistant Object)、VO(Value Object)、BO(Business Object)、DAO(Data Access Object)和POJO(Plain Old Java Object)是常见的五个概念,它们在软件设计和开发中扮演着不同的角色。...

    java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解

    Java 中 PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn 的理解 PO(Persistent Object):持久对象,指的是在 O/R Mapping 中将对象与关系数据库绑定的对象。PO 是由一组属性和属性的 get 和 set 方法组成。它...

    po vo dto bo to

    ### Java中的PO、VO、TO、BO、DAO与POJO详解 #### 一、概述 在Java企业级应用开发中,经常会遇到各种类型的对象,如PO、VO、TO、BO、DAO以及POJO等。这些对象各有侧重,在系统架构的不同层次扮演着不同的角色。...

    VO / DTO / BO / ORM DAO entity DO PO/ POJO(分层领域模型规约)整理

    本文将详细介绍VO (View Object)、DTO (Data Transfer Object)、BO (Business Object)、ORM (Object Relational Mapping)、DAO (Data Access Object)、Entity (实体)、DO (Data Object)、PO (Persistent Object)、...

    基于java中的PO VO DAO BO POJO(详解)

    在Java开发中,特别是在企业级应用领域,有几种常见的对象模型,它们分别是PO(Persistent Object)、VO(Value Object)、DAO(Data Access Object)、BO(Business Object)和POJO(Plain Old Java Object)。...

    java中的缩写

    本文将深入解析几个常见的Java名词缩写,包括PO(Persistent Object)、VO(Value Object)、DAO(Data Access Object)、BO(Business Object)以及POJO(Plain Ordinary Java Object),并探讨它们之间的关系及其...

    Blog:充当日常笔记或者个人博客吧

    Nginx配置文件详解Linux 安装JenkinsJAVA 多线程详解java 多线程学习How to create a Hello World with IntelliJ and Aspect JJava各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分Java finally...

    2019TopView后台二轮考核-微博1

    6. **类名包名解释**:理解PO、VO、TO、BO、DAO、POJO类的作用和应用场景。 7. **Git**:版本控制系统,学习正确提交和协作方式。 8. **日志规范**:遵循阿里巴巴开发规范,正确记录和处理异常日志。 **项目实施...

    MVC设计模式

    #### 五、PO/VO/DAO/BO/DTO的区分 - **PO (Persistant Object)**:持久化对象,用来表示数据库表中的记录,每个PO对象对应一条数据库记录。 - **VO (Value Object)**:值对象,用于业务逻辑层中的数据传递。VO更多...

    程序员从初级到高级知识汇集

    除此之外,书中还涉及了如何自定义MyEclipse的编译目录,设置JAVA环境变量,以及PO、BO、VO、DTO、POJO、DAO的概念和它们在软件开发中的角色,这些都是Java开发中不可或缺的基础知识。 整体来看,这本书涵盖了从...

    java完美笔记

    - **VO(ValueObject, POJO, TO, PO)类**: VO类用于数据传输和封装,确保不同层之间传递的对象是对象而非原始数据类型。VO类应遵循一定的规范,如与表名一致,实现Serializable接口以支持序列化,使用包装类代替...

Global site tag (gtag.js) - Google Analytics