弥合对象/关系之间的鸿沟(二)—— O/RM的架构
2012-04-08 18:35
288 查看
[b]弥合对象/关系之间的鸿沟(二)[/b]
使用标准的持久性API的一个优点是它允许项目作出晚部署项目数据库和持久性提供程序的决定。在项目开始时往往持久性提供程序所需要的功能并不明显,因此在许多项目中,允许作出晚部署的决定可以是一个选择使用它的重要的因素。
持久性API允许应用程序的程序员对数据库执行所有标准的CRUD(创建,检索,更新,删除)操作。由于应用程序的程序员不直接访问数据库中的行和列,一些速记符号会描述这些行为。例如,“持久化一个已被映射的领域类的实例”是“在数据库中创建一行或多行与映射到的领域类的实例中数据完全一致的记录。”同样,“删除一个领域类的实例”是指“删除数据库中与此领域类的实例完全对应的一行或多行记录。”
API包含持久化(映射后的领域类的)实例的方法,能够通过主要识别码来检索领域类的一个实例,能够根据领域类的值构建一个查询表达式来查找领域类及子类的所有实例,API还能够从数据库中删除领域类的一个实例。并且更新实例操作是在一个事务上下文中完成的,先检索一个领域类的一个实例,然后使用领域方法来修改此实例的值。
领域类以应用程序的视角表示存储在关系数据库中的数据,它通常是通过手工或使用工具从数据库架构生成。映射通常是需要声明的,表示领域对象模型与关系模式模型之间关联的映射在应用程序运行之前已经定义。既然领域类不必包含特定的持久性的行为,这些类通常被称为POJO(普通旧式Java对象)。
缺少持久性代码的情况下,允许持久化类的操作不依赖于持久性方面。因此,可以无需访问数据库或持久性环境来测试许多领域类的行为。这种编程风格鼓励关注点分离和封装。
许多表直接映射到领域类,如Employee, Department, Customer, Order, LineItem, Contract,Claim, Product,等等。这些表中的行映射到了领域类的实例。表中的列映射到了领域类的字段。
下一篇 阻抗不匹配?
O/RM的架构
从应用程序的视角看,O/RM有两个主要部分:持久性API和领域类。在Java中,API通常是Java社区流程的标准之一 ---Java持久性API,企业JavaBeans或Java数据对象——或尚未成为标准的流行API,例如TopLink或Hibernate。使用标准的持久性API的一个优点是它允许项目作出晚部署项目数据库和持久性提供程序的决定。在项目开始时往往持久性提供程序所需要的功能并不明显,因此在许多项目中,允许作出晚部署的决定可以是一个选择使用它的重要的因素。
持久性API允许应用程序的程序员对数据库执行所有标准的CRUD(创建,检索,更新,删除)操作。由于应用程序的程序员不直接访问数据库中的行和列,一些速记符号会描述这些行为。例如,“持久化一个已被映射的领域类的实例”是“在数据库中创建一行或多行与映射到的领域类的实例中数据完全一致的记录。”同样,“删除一个领域类的实例”是指“删除数据库中与此领域类的实例完全对应的一行或多行记录。”
API包含持久化(映射后的领域类的)实例的方法,能够通过主要识别码来检索领域类的一个实例,能够根据领域类的值构建一个查询表达式来查找领域类及子类的所有实例,API还能够从数据库中删除领域类的一个实例。并且更新实例操作是在一个事务上下文中完成的,先检索一个领域类的一个实例,然后使用领域方法来修改此实例的值。
领域类以应用程序的视角表示存储在关系数据库中的数据,它通常是通过手工或使用工具从数据库架构生成。映射通常是需要声明的,表示领域对象模型与关系模式模型之间关联的映射在应用程序运行之前已经定义。既然领域类不必包含特定的持久性的行为,这些类通常被称为POJO(普通旧式Java对象)。
缺少持久性代码的情况下,允许持久化类的操作不依赖于持久性方面。因此,可以无需访问数据库或持久性环境来测试许多领域类的行为。这种编程风格鼓励关注点分离和封装。
许多表直接映射到领域类,如Employee, Department, Customer, Order, LineItem, Contract,Claim, Product,等等。这些表中的行映射到了领域类的实例。表中的列映射到了领域类的字段。
下一篇 阻抗不匹配?
相关文章推荐
- 弥合对象/关系之间的鸿沟(一)
- 弥合对象/关系之间的鸿沟(五)—— 映射(二)关系的映射
- 弥合对象/关系之间的鸿沟(六)
- 弥合对象/关系之间的鸿沟(四)—— 映射(一)几种映射方案
- 弥合对象/关系之间的鸿沟(三)—— 阻抗不匹配?
- 图解js原型(原型,对象,函数之间的关系)
- 类函数, 原型对象 与 构造方法之间的关系
- UML:UMLl类图符号 对象与类之间相互关系的类型包括:依赖、关联、聚合、组合、泛华、实现等。
- 面向对象进阶之类和类之间的关系
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- 会计对象 会计科目 会计账户之间的关系
- SOA架构下如何解决服务与服务使用者之间的关系?
- 创建对象与括号之间的关系
- dom对象和jquery对象之间的关系。
- (转载)VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)
- 对象-关系数据库之间的映射
- 面向对象的基本概念(二)--UML.类之间的关系
- oracle中的数据库、用户、方案、表空间、表对象之间的关系
- 面向对象中多个对象之间的关系
- 实例对象、构造函数和原型之间的关系