文档章节

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

FeanLau
 FeanLau
发布于 2017/08/14 11:00
字数 713
阅读 11
收藏 0

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

O/R Mapping

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

 

下面涉及到一些概念的对比。

VO与PO,它们是有一组属性和属性的get和set方法组成。从结构上来看,它们并没有什么不同的地方。但是从其意义和本质上来看是完全不同的。

  1. VO是new关键字创建的,有GC回收的。PO则是向数据库中添加新数据时创建,删除数据库中的数据时消除的。并且它只存活在一个数据库连接中,断开连接即被销毁。
  2. VO是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。PO则是由状态的,每个属性代表当前的状态。它是物理数据的对象表示。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换。
  3. VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。PO的属性是跟数据表的字段一一对应的。PO对象需要实现序列化接口。 

 

© 著作权归作者所有

FeanLau
粉丝 3
博文 226
码字总数 123622
作品 0
浦东
程序员
私信 提问
java的几种对象(PO,VO,DAO,BO,POJO)解释

一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作...

change_solider
2014/03/19
0
0
PO/VO/BO/DTO/POJO 解释

PO Persistant Object 持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。 VO 1. Value Object 值对象 2. View Ob...

低至一折起
2018/10/08
0
0
javaweb开发之vo,po,dto等

PO(persistant object,持久对象) 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。 BO(business object,业务对象) ...

小米米儿小
2013/11/29
0
0
PO BO VO DTO POJO DAO 概念及其作用

PO(bean,entity等命名): persistant object持久对象,数据库表中的记录在java对象中的显示状态 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,...

五大三粗
2014/12/09
0
0
作为架构师,你必需要搞清楚的概念:POJO、PO、DTO、DAO、BO、VO

POJO、PO、DTO、DAO、BO、VO这些概念作为Java开发来说应该全部或者部分遇到过,作为架构师的你想必更是清楚这些概念在不同场景的应用。 下面我逐一介绍一下,想必你会更深刻。 POJO 全称为:...

java技术栈
2017/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

佳博标签打印问题-

由于网页打印不行,要么sdk 写成activex,这样浏览器支持又有局限。 因此,采用客户端编写打印服务启动,定时轮询服务端打印队列,从服务的获取打印队列进行打印。 服务端web 点击打印,讲打...

mellen
5分钟前
0
0
Jmeter利用JMXMon插件监控服务器JVM情况

1、Jmeter下载JMXMon插件 2、Jmeter 添加 JMXMon请求 远程监控JVM状态需要在JVM启动时候加上一段参数才行,在tomcat bin目录下找到catalina.sh 在# OS specific support. $var _must_ be set...

覃光林
6分钟前
1
0
Qt编写安防视频监控系统(界面很漂亮)

一、前言 视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸...

飞扬青云
10分钟前
1
0
Python的requests库中的Put方式使用

1.后端接口 @PutMapping public ResponseEntity<MyObject> putMyObject( @RequestBody MyObject myObject) { ... } Put请求参数在请求体里面。 1.前端请求 import requestsimpo......

亚林瓜子
11分钟前
0
0
全站加速(DCDN)- IP应用加速产品解读

5月22日下午15点,阿里云全站加速(DCDN)-IP应用加速如期发布。IP应用加速是阿里云自主研发的一款更高效、更安全、更便捷的动态加速产品,结合阿里云CDN本身的资源优势,利用就近接入、智能...

迷你芊宝宝
15分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部