Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1300479
  • 博文数量: 436
  • 博客积分: 7854
  • 博客等级: 少将
  • 技术积分: 3225
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-18 16:30
文章分类

全部博文(436)

文章存档

2013年(2)

2012年(56)

2011年(70)

2010年(308)

分类:

2010-11-10 20:06:54

其实vo也是一个。
vo一般用来在不同的层之间传递数据,
比如说的调用的时候,一般不会直接把form传过去,
而是先把form中的数据放到一个vo中,然后把vo传给。

vo的主要作用是为了解耦,就是尽量减少不同层之间的耦合性。
的范围就比较广了,只要符合bean的规范的java类都可以称做。 

< 是 (对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
VO,值对象(),PO,持久对象(),它们是由一组属性和属性的get和set方法组成。从结构上看,它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。

1.VO是用new关键字创建,由GC回收的。
PO则是向数据库中添加新数据时创建,删除数据库中数据时削除的。并且它只能存活在一个数据库连接中,断开连接即被销毁。

2.VO是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。
PO则是有状态的,每个属性代表其当前的状态。它是物理数据的对象表示。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换。

3.VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。
PO的属性是跟数据库表的字段一一对应的。

PO对象需要实现序列化接口。
-------------------------------------------------

PO是持久化对象,它只是将物理数据实体的一种对象表示,为什么需要它?因为它可以简化我们对于物理实体的了解和耦合,简单地讲,可以简化对象的数据转换为物理数据的编程。VO是什么?它是值对象,准确地讲,它是业务对象,是生活在业务层的,是业务逻辑需要了解,需要使用的,再简单地讲,它是概念模型转换得到的。
首先说PO和VO吧,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(当然我是指他们的属性)。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。又正因为这样,业务逻辑层也独立开来,它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理,至于怎么存怎么读交给别人吧!不过,另外一点,如果我们没有使用数据持久层,或者说没有使用,那么PO和VO也可以是同一个东西,虽然这并不好。

----------------------------------------------------
java的(,)解释

) 持久对象
在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。

) 值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。

),数据传输对象
在应用程序不同tie(关系)之间传输的对象

) 业务对象
从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。

) 简单无规则java对象
纯的传统意义的java对象。就是说在一些工具中,能够做到维护数据库表记录的完全是一个符合规范的纯Java对象,没有增加别的属性和方法。我的理解就是最基本的,只有属性字段及和方法!。

) 数据访问对象
是一个sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,它负持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合VO, 提供数据库的CRUD操作...

对象/关系 映射
定义好所有的之后,这个可以帮我们做很多的工作。通过这些,这个可以生成所有的关于对象保存,删除,读取的SQL语句,我们不再需要写那么多行的DAL代码了。

实体(实体模式)
DAL(数据访问层)
IDAL(接口层)
(类工厂)
BLL(业务逻辑层)
BOF 业务对象框架
SOA 面向服务的设计
EMF 建模框架

----------------------------------------

PO:全称是
持久对象
最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

BO:全称是
:业务对象
主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。

VO :
值对象
表现层对象
主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、的一个界面,用一个VO对象对应整个界面的值。

DTO :
数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

POJO :
简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。

一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO

DAO:
数据访问对象
这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO

-----------------------------------------------------------------

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

值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.

数据访问对象,此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作.

业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作;

简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它.

---------------------------------------------
VO:值对象、视图对象
PO:持久对象
QO:查询对象
DAO:数据访问对象
DTO:数据传输对象
----------------------------------------
里的 就是个VO;
里的 实体bean就是个PO,也叫POJO;
里的 就相当于一个QO;
在使用的时候我们会定义一些查询的方法,这些方法写在接口里,可以有不同的实现类.而这个接口就可以说是个DAO.
个人认为QO和DTO差不多.
----------------------------------------
PO或叫BO,与数据库最接近的一层,是ORM中的O,基本上是数据库字段对应BO中的一个属性,为了同步与安全性考虑,最好只给DAO或者调用,而不要用,或者BO调。
DAO,数据访问层,把VO,中的对象可以放入。。。。
DTO,很少用,基本放入到DAO中,只是起到过渡的作用。
QO,是把一些与持久性查询操作与语句放入。。
VO,V层中用到的基本元素与方法等放其中。如果要其调用BO,则要做BO转换VO,VO转换BO操作。VO的好处是其页面的元素属性多于BO,可起到很好的作用。。。。
-----------------------------------------
楼上的不对吧,PO是持久化对象。BO=—业务对象。
PO可以严格对应数据库表,一张表对映一个PO。
BO则是业务逻辑处理对象,我的理解是它装满了业务逻辑的处理,在业务逻辑复杂的应用中有用。
VO:值对象、视图对象
PO:持久对象
QO:查询对象
DAO:数据访问对象——同时还有DAO模式
DTO:数据传输对象——同时还有DTO模式

我发给你 你等等
是一个大项目,我的毕业项目,用到ssh+ajax
是一个超市管理系统
代码很简洁
补:
代码在里面名为
邮件正在发送,可能要点时间,因为有点大20M 

哦 还有,你到里面去把数据库密码改成你的数据库密码
很简单的 你看看代码应该会改,我就不多说了

糟了,不行,邮件附件最大只支持15m,可我那项目是20m
289896737这是我qq号你加我 我直接传你 

<就是个这种技术的统称。
JSP只是view部分。(*.jsp部分)会有些标签,还有<% %>方式插入Java代码实现业务,但不推荐这种方法。
才是后台业务逻辑部分,可以这么理解。
是一种框架,如果你的程序是重量级的,很难控制的时候用上会事务管理,而且还提供组件化服务,比如能集成等技术。

应该这样说:jsp标签的作用是使java代码和html标签区分,但是jsp标签会通过容器自动编译成为java代码,只是解放了前台页面的工作量。
和直接在jsp页面中插入java代码的区别主要是是view层和层得到了一定的分离(纯jsp的网站是1模式),这样做的好处是,当我们想改变一个业务逻辑的时候,只需要改变业务逻辑层的就可以了,不用再去改动view层的jsp,是对工程进行了的“解耦合”的一种方法。
如果不满意,可以继续讨论。 

<的一个重要特性就是可以用实现功能的扩展。将大部分功能放在中完成,以使jsp页面程序更干净简洁、利于维护。可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。如下就是一个示例:
页面:

<%@ ="=GBK" %>
&;
&;
&;示例&=no>
&="frma" ="post" ="" >
&;
你的姓名:
&="text" size="15" name="" ="" ;
& type="" ="" name="" ="[提交]" ="()" ;


&="" type="">

页面

<%@ ="=GBK" %>
&;
&;
&;示例& id="" ="page" ="" >
& name="" ="*" />
&=no>
&="frmb" ="post" ="" >
&;
<%=()%>


代码:

;

{

= "";

(){
= );
}

(){
= ":"+;
;
}

//汉字转换方法
(){
="";
try{
(("ISO-8859-1"),"GBK");
}){
("():ex="+());
}
{
;
}
}

}
页面上“提交”按钮将表单提交给页面,获得的中文本框的值并在实例化后,执行bean中的方法,接着执行方法,在页面上输出对你问好的语句。
这个简单的示例体现了在jsp中使用的两个重要方面,一个是捕获表单的输入并保存,一个是执行逻辑功能。所以,依此两个功能还可以将用在jsp中的分为值)和工具Bean (),如下:

值Bean
;

{
= "";

(){
= );
}
//汉字转换方法
(){
="";
try{
(("ISO-8859-1"),"GBK");
}){
("():ex="+());
}
{
;
}
}
}

工具Bean
;

{

(){
= ":"+();
;
}
(){
= ":"+;
;
}
}

当然,从这个例子看是没有必要分开和的,但在具有复杂业务逻辑的web应用程序中就可以用实现对表单输入的捕获、保存,减少对数据库中那些值几乎不变的实体的访问,或将放在一定作用域内使此作用域内的多个jsp页面共享。用完成操作数据库、数据处理等业务逻辑,以 或页面传递的值为参数。

阅读(996) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~