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对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。
Sorry, the comment form is closed at this time.
No comments yet.