资讯专栏INFORMATION COLUMN

弥合对象、关系之间的鸿沟(2/10)

golden_hamster / 2687人阅读

摘要:使用标准的持久性的一个优点是它允许项目作出晚部署项目数据库和持久性提供程序的决定。映射通常是需要声明的,表示领域对象模型与关系模式模型之间关联的映射在应用程序运行之前已经定义。

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,等等。这些表中的行映射到了领域类的实例。表中的列映射到了领域类的字段。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17433.html

相关文章

  • 弥合对象关系之间鸿沟2/10

    摘要:使用标准的持久性的一个优点是它允许项目作出晚部署项目数据库和持久性提供程序的决定。映射通常是需要声明的,表示领域对象模型与关系模式模型之间关联的映射在应用程序运行之前已经定义。 O/RM的架构   从应用程序的视角看,O/RM有两个主要部分:持久性API和领域类。在Java中,API通常是Java社区流程的标准之一 ---Java持久性API,企业JavaBeans或Java数据对象...

    sherlock221 评论0 收藏0
  • 弥合对象关系之间鸿沟(1/10

    摘要:关键字对象关系映射现代的应用程序常常是使用两种截然不同的技术构建而成业务逻辑部分使用面向对象编程,数据存储使用关系型数据库。对象关系映射则是两者之间的桥梁,它允许应用程序以面向对象的方式访问关系数据。 O/RM技术可以简化数据访问,但也需要注意到引入这个新的抽象层来的挑战。 关键字:对象-关系映射   现代的应用程序常常是使用两种截然不同的技术构建而成:业务逻辑部分使用面向对象编程...

    tianhang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<