PO,BO, VO, DTO, POJO, DAO的概念及区分

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

VO为值对象,Value Object的缩写;PO为持久对象,Persisent Object的缩写。它们都是由一组属性和属性的get和set方法组成。从结构上看,它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。

PO:

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

好处是可以把一条数据库记录作为一个对象处理,可以方便的转为其它对象。它可以简化我们对于物理实体的了解和耦合,简单地讲,可以简化对象的数据转换为物理数据的编程。

位于持久层。

VO:

精确点讲它是业务对象,为业务逻辑所使用,通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。

VO是抽象出的业务对象,可以和表对应,也可以不和表对应,这根据业务的需要。个人觉得同DTO(数据传输对象),在web上传递。

位于业务层。

DTO :

数据传输对象,Data Transfer Object的缩写。

主要用于远程调用等需要大量传输对象的地方。

比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构。

POJO :

简单java对象,Plain Old Java Object 的缩写。

POJO实际就是普通JavaBean。

DAO:

数据访问对象,Data Access Object的缩写。

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

此条目发表在java/j2ee分类目录,贴了, , , , 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据