JDO vs Value对象
JDO是一种Java持久技术,可用于将POJO(普通旧Java对象)存储到数据库中,而无需了解不同数据存储的基本实现。值对象(也称为数据传输对象)是一种抽象设计模式,它引入了简单数据持有人的概念,目的是在多层和层之间传输数据。
什么是JDO?
JDO(Java数据对象)提供了一种机制,可以将持久性传递给Java对象和数据库访问。JDO非常透明,因为它允许Java应用程序开发人员访问基础数据,而无需编写任何特定于数据库的代码。JDO可以在包括Java Standard Edition,Web层和应用程序服务器在内的多个层次上使用。JDO API是JAVA对象的其他持久性(在程序堕胎后保持对象)的替代方案,例如序列化,JDBC(JAVA数据库连接)和EJB CMP(Enterprise Javabeans Architection Cansucter cantainer tocalered Managed Persistence)。JDO使用XML并增强字节码。使用JDO API的主要优点是他们可以存储数据而无需学习新的查询语言,例如SQL(这取决于数据存储的类型)。JDO非常易于使用,因为开发人员只能专注于其域对象模型。不仅如此,JDO根据数据访问自行优化代码。由于JDO API对数据存储的类型不严格,因此Java应用程序开发人员可以使用相同的接口将Java对象存储到任何数据存储中,包括关系数据库,对象数据库或XML。JDO是高度便携的,因为不需要修改或重新编译即可在不同的供应商实现上运行。
什么是值对象?
值对象也称为数据传输对象(DTO)是一种简单的抽象设计模式,它处理数据容器以保存数据,以便在层和层之间传输数据。尽管此模式最准确的术语是数据传输对象,但由于Core J2EE的第一个版本中的错误,它被引入为值对象。尽管该错误在第二版中得到了纠正,但此名称变得流行,并且仍然被大量使用而不是数据传输对象(但应注意,正确的术语是数据传输对象)。DTO设计模式与实体Bean,JDBC和JDO一起使用,以纠正有关企业应用程序中隔离和交易的问题。重要的是要注意,这些只是用于在客户端和数据库之间传输数据的简单数据持有人,并且它们没有提供任何形式的持久性。DTO的目的是充当传统EJB中可序列化对象(作为3.0之前的实体豆是不可序列化的)。在由DTO定义的单独的组装阶段中,在将控件发布到演示层之前,将获取和封装视图所使用的所有数据。
What is the difference between JDO and Value Object?
JDO实际上是一个持久性技术用于年代tore Java objects in to databases which provides convenience to the developers by handling all the implementation level details and allowing the developers to focus on non database-specific coding. But, the Value Object represents an abstract design pattern (not a technology) that provides a generic data holder known as a Data Transfer Object which can hold data for the purpose of transferring between client and databases. JDO provides the facility of persisting data items, while Value Object only deals with keeping data temporarily during the period of data transfer. In other words, Value Object does not provide persistence.
Leave a Reply