首页 > 编程知识 正文

vo和po的区别,vo继承entity

时间:2023-05-06 15:18:45 阅读:58312 作者:324

java的(PO、VO、TO、BO、DAO、POJO )解释

action包按名称要求,主要是view,即我们说的视图是与页面打交道,而action类是

关于操作方法、页面表单的操作方法,具体操作方法的实现在Action类中。

bean是基本的JavaBean,很多是实体

dao包正在与数据库进行交易。 crud检查删除、变更。 对数据库的删除更改操作在这里。

model是一个实体类,是与数据库成对生产的表的一部分属性

服务层也称为业务逻辑层,它调用dao中的方法,而action调用它

dto=数据传输对象

VO=value对象

两个概念其实是一种感想,都是用来放数据的,但这个数据和数据库关系不大

util是工具类,放置常用的工具方法

o/r映射是对象关系

对象关系映射(Mapping )的缩写。 通俗地说,就是将对象绑定到关系数据库,然后在对象中表示关系数据。 在O/R下

在地图世界里,有两个基本而重要的东东:博锐、PO。

VO,值对象(Value Object ),PO,永久对象) )持久性

Object )、一组属性和属性的get和set方法组成。 在结构上没有区别。 但是,从其意义和本质来看完全不同。

1.VO由new关键字制作,由GC回收。

在向数据库添加新数据时创建o,从数据库中删除数据时删除o。 此外,它只能通过一个数据库连接生存,断开连接将被销毁。

2.VO是价值对象,准确地说是业务对象,目的是在业务层生存,在业务逻辑中使用,并提供数据的生存位置。

o具有状态,每个属性表示当前状态。 这是物理数据的对象表示。 这样可以解除我们的程序和物理数据的结合,使对象数据和物理数据的转换变得简单。

3.VO的属性因当前业务而异。 也就是说,每个属性都对应于当前业务逻辑所需的数据的名称。

PO的属性与数据库表中的字段一一对应。

PO对象必须实现序列化接口。

------------- -请参阅

PO是持久化的对象,它只代表物理数据实体的一个对象,为什么需要它呢? 因为可以简化物理实体的理解和结合,简单地说,可以简化对象的数据转换

物理数据的编程。 VO是什么? 这是值对象,准确地说是业务对象,居住在业务层,需要理解和使用业务逻辑,简单来说就是概念模型的转换

得到了。

先谈谈PO和VO吧。 那些关系应该是相互独立的。 一个VO可以只有PO的部分,也可以由多个PO构成,同样也可以与一个PO同等。 (

做爱)。 正因为如此,PO独立,数据持久层也独立,不受业务干扰。 因此,业务逻辑层也是独立的,不受数据保留层的影响

响,业务层关心的只是业务逻辑的处理,如何保存就交给别人吧。 但是,另一种情况是,如果没有使用数据持久层或没有使用hibernate

或者PO和VO可以是相同的。 虽然这样不好。

------------- -请参阅

java的(PO、VO、TO、BO、DAO、POJO )解释

永久对象(po )永久对象

o/r映射时出现的概念,但是如果没有o/r映射,这个概念就不存在了。 它通常对应于数据模型(数据库),本身也有一些业务逻辑处理。 可以视为数据库

映射到表的java对象。 最简单的PO对应于数据库中某个表的一条记录,多个记录可以使用PO集合。 PO应该不包含对数据库的操作。

值对象(VO )

通常用于业务层间的数据传输,与PO一样只包含数据。 但是,应该是抽象的业务对象,可以对应表,也可以不是。 这取决于业务需要。 个人认为,该DTO (数据传输对象)会在web上传输。

传输对象(to )、数据传输对象

在APP应用程序的不同tie之间传输的对象

业务对象(bo )

从业务模型的角度,请参阅UML组件域模型中的域对象。 通过封装业务逻辑的java对象并调用DAO方法,与PO、VO协同进行业务操作。

Pojo(plainordinaryjavaobject )简单无规则的Java对象

纯传统意义的java对象。 在一些对象/关系中

在映射工具中,只有一个永久对象可以维护数据库表中的记录

个符合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值对象

ViewObject表现层对象

主要对应界面显示的数据对象。对于一个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模式

SSH开发目录结构设置(转)

在用ssh开发web应用时,需要对生成的各个类文件进行组织,下面就对一个可行的目录方案进行介绍:

譬如应用中有一个用"户管理模块",则在公共包下建立一个"user"包,如该公共包可以为"com.simon.oa",

在user包下包括如下子包

1、controler包

该包放置各种struts的action。(执行调度功能)

2、dao包

该包放置各类dao(data access

object),也就是放置对数据库访问的实现类,在用myeclipse中的“Hibernate Reverse

Engineering”进行反向操作时在某一个目录中就会生成对应某个表的DAO,生成后可将该DAO拖到dao包中。在某些应用中将DAO作为接口,

在该接口中包括所有对数据库的操作方法,然后在dao包建立一个hibernate包,在hibernate包中放置对DAO接口的实现,譬

如:UserDAO接口有一个实现类为UserDaoImpl,将该类放置到hibernate包中,实际的开发倾向于后一种方式,因为对这个DAO接口

可以实现spring的IoC操作。(不知道myeclipse对此是怎么考虑的,这个问题让我纠缠了很久,误将DAO理解成一个能够进行实际操作的类,

而不是一个接口,以后开发要注意)

3、model包

该包中放置hibernate反向工程生成的bean和该bean对应的.hbm.xml文件。

4、service包

该包放置业务操作类,譬如用户服务类,一般情况将该用户操作类提取一个接口,然后在service包下生成一个impl包,在impl包中才放置用户操作

接口的实现类。该用户接口实现类中调用DAO接口对数据库进行操作,而调用该实现类的方法在struts的action中。

5、vo包(value object)

vo包中的中包括struts中使用的POJO及actionform等信息。所有的ActionForm都被配置在struts-config.xml

文件中,该文件包括了一个form-beans的元素,该元素内定义了所有ActionForm,每个ActionForm对应一个form-bean元

素。

VO: Value Object

DTO: Data Transfer Object

个人理解VO和DTO是类似的东西,原则上VO和DTO只有Public

Fields,主要用于进程之间数据传递的问题,VO和DTO不会传递到表示层,在业务层就会被吸收。但看到很多人在建立VO和DTO时,也含有Setter,Getter属性和一些其它的辅助方法,这也无可厚非,我自己也不能确定这对不对。

实际的结构如下:

每个项目拆分成model、dao、service(含命令行)、util(工具类和静态常量)、userapp、admapp等6个子模块儿,每个子模

块儿为一个独立项目,使用eclipse的workset组装成层级项目;对应到svn版本库的trunk下细分成project-model、

project-dao、project-service、project-util、project-userapp、project-admapp。

vo主要是用于传递数据的相当于dto,数据的载体对象

po主要是和你数据库表一一对应的,主要作用与dao层

po向vo转变主要发生在service,在由你的controller层

调用service返回的vo 传递到页面进行展示,这里提示一点

po转vo不是决定的,一般是多变查询的数据设计到两个表的数据的时候

会涉及到vo,还有你在写webservice传递对象的时候 会涉及到vo

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。