一、概述
实际编程开发中,仅仅一个数据库对象映射是满足不了各种复杂需求。
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有个基本的也是重要的东东需要了解,即PO。
二、对比
以下指示大家通俗意义上的常用定义,一般以此为后缀【PO不用加】
当然也可以定义自己的各种O对象,方便开发的简便与理解,比如个人常用的接收前端参数的RO【Request Object】、QO【query object】等
名称 | 全名 | 基本含义 | 备注 |
PO |
persistant object 持久对象 |
它们是由一组属性和属性的get和set方法组成 可以看成是与数据库中的表相映射的java对象 PO的属性是跟数据库表的字段一一对应的 |
不建议增加任何逻辑 可能是所有其他O的基类或属性 |
VO【1】 |
value object 值对象 |
业务对象,是存活在业务层的,是业务逻辑使用的, 它存活的目的就是为数据提供一个生存的地方 |
|
VO【2】 |
View Object 表现层对象 |
主要对应界面显示的数据对象。对于一个WEB页面, 或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。 |
|
BO |
business object 业务对象 |
从业务模型的角度看,见UML元件领域模型中的领域对象。 封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。 |
|
POJO |
plain ordinary java object 简单无规则java对象 |
POJO是最常见最多变的对象,是一个中间对象 |
|
DTO |
Data Transfer Object 数据传输对象 |
主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构. 到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO |
|
DAO |
data access object 数据访问对象 |
和以上完全不是一个概念 主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO |
时间: 2024-10-10 16:36:57