JDO与值对象
JDO是一种Java持久性技术,可以用来将POJO(普通的旧Java对象)存储到数据库中,而无需了解不同数据存储的底层实现。值对象(也称为数据传输对象)是一种抽象的设计模式,它引入了简单数据保持器的概念,用于在多个层和多个层之间传输数据。
什么是JDO?
JDO(javadataobjects)提供了一种向Java对象和数据库访问提供持久性的机制。JDO是高度透明的,因为它允许Java应用程序开发人员访问底层数据,而不必编写任何特定于数据库的代码。JDO可以跨多个层使用,包括Java标准版、Web层和应用服务器。jdoapi是Java对象的其他持久性(在程序中止后保留对象)的替代方法,例如序列化、JDBC(Java数据库连接)和EJB-CMP(企业JavaBeans体系结构容器管理的持久性)。XML代码的增强和使用。使用jdoapi的主要优点是它们可以存储数据,而无需学习新的查询语言,如SQL(取决于数据存储的类型)。JDO非常容易使用,因为开发人员只能专注于他们的领域对象模型。不仅如此,JDO还根据数据访问来优化代码。由于jdoapi对数据存储的类型并不严格,因此java应用程序开发人员可以使用相同的接口将java对象存储到任何数据存储中,包括关系数据库、对象数据库或XML。JDO具有很高的可移植性,因为在不同的供应商实现上不需要修改或重新编译。
什么是价值对象?
值对象也称为数据传输对象(datatransferobjects,DTO)是一种简单的抽象设计模式,它处理数据容器来保存数据,以便在层和层之间传输数据。尽管这种模式最准确的术语是数据传输对象,但由于核心J2EE的第一个版本中的一个错误,它被引入为值对象。虽然这个错误在第二版中得到了纠正,但这个名称变得流行起来,并且仍然大量使用,而不是数据传输对象(但是应该注意的是,正确的术语是数据传输对象)。DTO设计模式与实体bean、JDBC和JDO一起使用,以纠正企业应用程序中与隔离和事务相关的问题。需要注意的是,这些只是用于在客户机和数据库之间传输数据的简单数据持有者,它们不提供任何类型的持久性。DTO的作用是在传统EJB中充当可序列化的对象(因为3.0之前的实体bean是不可序列化的)。在由DTO定义的单独的组装阶段中,视图使用的所有数据都是在控件释放到表示层之前获取和封送的。
JDO和Value Object有什么区别?