- 浏览: 420609 次
- 性别:
- 来自: 云南
文章分类
- 全部博客 (143)
- zk (22)
- jpbm (1)
- cas (4)
- sql (18)
- Hibernate (21)
- Elcipse (7)
- Android (1)
- 综合 (11)
- tomcat (6)
- WebService (3)
- js (4)
- weblogic (2)
- Spring (10)
- ubuntu (3)
- os (2)
- JSTL (2)
- java (10)
- css (3)
- cloud (1)
- shiro (2)
- jacob (3)
- junit (1)
- testng (3)
- 办公应用 (1)
- maven (2)
- oracle (1)
- ckplayer (1)
- 正则表达式 (1)
- poi (1)
- html (1)
- jquery (1)
最新评论
-
aionbo:
我按你们说的也改成x86了,但还是报同样的错
跟开涛学shiro遇到异常Cannot find any provider supporting AES/CBC/PKCS5Padding【解决】 -
纵观全局:
完美解决,谢谢
跟开涛学shiro遇到异常Cannot find any provider supporting AES/CBC/PKCS5Padding【解决】 -
Blod123:
看来 还是一步步跟,我也跟了,只是没有跟到你那么深
跟开涛学shiro遇到异常Cannot find any provider supporting AES/CBC/PKCS5Padding【解决】 -
hellobleach:
楼主有没有下载的hibernate中文版 chm的下载的文件啊 ...
Hibernate注解帮助文档 -
jsd_lxf:
挺全的,感谢作者
JSTL详解
java中的vo,po,to,bo,pojo,dao
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模式
发表评论
-
将一个整数S随机拆分为在min~max之间的整数之和,并将分配结果存储到数组K中【修正版】
2017-12-14 14:01 1036package core.util; import j ... -
将一个整数S随机拆分为N个在min~max之间的整数之和,并将分配结果存储到数组K中
2015-11-18 10:40 3104这两天做一个程序需要 ... -
在同一台机器上安装多个版本jdk,修改环境变量不生效
2015-07-02 21:53 934本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk ... -
Java中的异常类型
2013-12-24 17:53 8621. java.lang.nullpointerexcepti ... -
Spring MVC下载及下载时遇到IE下中文乱码问题解决
2013-10-28 16:32 1469@Override public void export ... -
iReport使用教程[转载]
2013-07-18 15:07 18691一、iReport与JasperReport简介 ... -
java.util.ConcurrentModificationException原因
2012-09-20 10:00 1461用iterator遍历集合时要注意的地方:不可以对ite ... -
Arrays.sort用法
2012-08-20 09:29 1074package test;import java.util. ... -
Java transient关键字
2012-08-16 15:06 894Volatile修饰的成员变量在每次被线程访问时,都强迫从主内 ... -
url中文乱码解决大全
2012-08-16 15:04 1093使用 tomcat 时,相信大家都回遇到中文乱码的问题, ... -
MVVM设计模式
2012-07-10 15:14 2337一、背景:与用户 ... -
iframe透明 自适应高度
2011-11-23 13:02 1368最近有些web页面经常用到iframe,但是遇到两个很棘 ... -
java异常收集整理
2011-09-07 13:07 864算术异常类:ArithmeticExecption ... -
数学算法,今天才知道,真的够愚蠢
2011-08-31 16:35 8921.十几乘十几:口诀:头乘头,尾加尾,尾乘尾。例:12×1 ... -
最权威的身份证号码的正则表达式(大家验证)
2011-08-18 11:06 2446转自:http://simeon.blog.51cto.com ... -
适配器(Adapter)模式
2011-04-19 09:47 1002适配器(Adapter)模式 ... -
ubuntu下修改path三种方法
2011-04-13 19:07 1996在 Ubuntu 系统中有两种设置环境变量 PATH 的方 ... -
ubuntu 常用的翻译工具 星际译王StarDict
2011-04-13 19:06 1286这里给大家推荐Linux平台上最常用的翻译工具——Star ... -
ubuntu解压rar
2011-04-13 10:43 955一般通过默认安装的ubuntu是不能解压rar文件的,只有在安 ...
相关推荐
Java中 PO VO BO DTO DAO 和 POJO 关系图
关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释
Java的几种对象(PO-VO-DAO-BO-POJO)解释
java术语(PO/POJO/VO/BO/DAO/DTO)
java(PO,VO,BO,DAO,POJO)Explained Collection 详解
java的几种对象(PO_VO_DAO_BO_POJO)解释
首先 介绍Java的缩写,给一些入门Java的帮助,
下面小编就为大家带来一篇基于java中的PO VO DAO BO POJO(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解,需要的朋友可以参考下
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...