关于value object

哪位大哥能给我具体讲讲啊
以及它与session facade的区别

value object,我们叫值对象,是持久性框架中很重要的一个概念。简单的VO对象可以映射为数据库中的一条记录。复杂的可以映射为具有复杂关系的数据库中的记录。VO的出现主要解决网络传输问题。通常的在客户端添加一笔记录时,会频繁的调用set方法在网络间传递数据,而值对象允许你一次将数据添充到一个VO里,然后在系统的各层次间以VO进行数据的传送。系统层与层间的数据交换都通过VO来完成,能大大减少网络的开支。

持久性框架中另一个重要的方面是DAO(Data Access Object),通常它与VO的关系比较紧密,DAO负责抽象数据库操作,为上层提供操作数据库的单一形式,而不管数据库具体是什么(Oracle,sybase,db2..等)。因为具体的数据在某些实现方法上略有不同,比如在自增流水号上面,Oracle有序列生成,而Sybase,Sql Server等都有自增列来完成。这样就造成了数据库不同间的移植问题。DAO正好解决这个问题,抽象数据库具体操作,向上提供统一处理方法。将数据库的结构映射为JAVA的对象。

对于上面提到的自增流水号的问题,可能有人会问是怎么解决的。在这里有一个叫做“主键生成器”的模式可以直接应用。其实就是自已做一个主键生成系统来代替数据库提供主键生成机制

value object,我们叫值对象,是持久性框架中很重要的一个概念。简单的VO对象可以映射为数据库中的一条记录。复杂的可以映射为具有复杂关系的数据库中的记录。VO的出现主要解决网络传输问题。通常的在客户端添加一笔记录时,会频繁的调用set方法在网络间传递数据,而值对象允许你一次将数据添充到一个VO里,然后在系统的各层次间以VO进行数据的传送。系统层与层间的数据交换都通过VO来完成,能大大减少网络的开支。

持久性框架中另一个重要的方面是DAO(Data Access Object),通常它与VO的关系比较紧密,DAO负责抽象数据库操作,为上层提供操作数据库的单一形式,而不管数据库具体是什么(Oracle,sybase,db2..等)。因为具体的数据在某些实现方法上略有不同,比如在自增流水号上面,Oracle有序列生成,而Sybase,Sql Server等都有自增列来完成。这样就造成了数据库不同间的移植问题。DAO正好解决这个问题,抽象数据库具体操作,向上提供统一处理方法。将数据库的结构映射为JAVA的对象。

对于上面提到的自增流水号的问题,可能有人会问是怎么解决的。在这里有一个叫做“主键生成器”的模式可以直接应用。其实就是自已做一个主键生成系统来代替数据库提供主键生成机制

不知道说这些对你有用吗?

说得很详细,谢谢呀

不客气,欢迎讨论一下

另外再请问一下:POJO是什么的简写,该模式如何用呢?

去J2EE论坛上看看吧。

value object现在改为叫Transfer Object 模式了

POJO: Plain Old Java Object,

generally referring to the simple objects that you can
construct. So EJB compontents are not POJOs.

VO are now used to present your persistent data
model, i.e., what you see at business layer (EJB)
are only the model presented by VO. This isolates you
from the persistent implementation (you won't know at all
whether a piece of data is stored in one table or two
in your back end database).

还有什么时候用简单的VO,什么时候用复杂的VO,还有它和ActionForm的关系?