使用Java Data Object(JDO)存放持久性数据 (1)
[ 来源:互网络 | 更新日期:2007-09-09 05:49:31 | 浏览次数:19123]
简介:抛开数据存储的细节,建立简单、明了的面向对象的API来处理数据。我们不关心存储的细节和数据库中内部的数据含义,而是关心数据间的关系、对象含义或其他的一些逻辑。为什么我们要处理数据存储中的低级结构,比如表、列,并来来回回的存取他们,我需要的是更关注复杂逻辑应用中所直接所应用的数据形式 2
Java Data Object(JDO) 标准提供了一个统一的、简单的、在Java application object和数据库间透明的接口,它是数据处理的一个革新,在本文中作者将会讨论我们所遇到的持久性数据的处理、特性等问题,最后介绍JDO这种解决方案
数据和计算一样古老,现在随着面对对象语言的兴起,面向对象的数据也变得深入人心起来。目前大多数先进的、重要的应用程序都使用面向对象的数据结构。另一方面 大部分的数据库系统仍然是关系型数据库,虽然面向对象的数据结构对很多应用必不可少,但我们能仍然要考虑很多原有系统的需要
本文讨论的是在传统中间件环境下,比如J2EE中,JDO是如何解决持久性数据的问题。本篇文章是一篇有关JDO的介绍,而并非详细的教程,面向的是应用程序的开发者(熟悉Java开发、对象数据库和关系型数据库),而不是JDO的实现设计人员
需要透明的存储层?
以下列举了为什么我们使用面向对象的数据:
1.抛开数据存储的细节,建立简单、明了的面向对象的API来处理数据。我们不关心存储的细节和数据库中内部的数据含义,而是关心数据间的关系、对象含义或其他的一些逻辑。为什么我们要处理数据存储中的低级结构,比如表、列,并来来回回的存取他们,我需要的是更关注复杂逻辑应用中所直接所应用的数据形式
2.我们想要使用即插即用的方式来处理数据:当改变数据库时不需要更改一行代码,甚至也不要修改很多的配置。换句话说,我们需要一个以Java object为基础来存取数据的工业标准,就如同象JDBC那样是访问SQL数据的工业标准.
3.我们需要即插即用的方式来处理不同的数据视图,也就是说我们可以以最小的改动完成从关系型数据库向面向对象数据库的的转变。听起来不错,但在实际使用使用中,这并不重要。
以上的3个原因需要我们定义一个存储框架来提供对象和关系型数据库之间高级别的Java API,这些API的生命周期要长于运行环境(JVM)的生命周期,这样的API应该具备以下的特征:
简易
最少的嵌入
透明,意思是该框架需要隐藏数据库实现
协调一致,简单的API用于保存、取出、更新
支持事务,需要定义出于数据对象的相应事务语义
既支持可管理(服务模式应用),也支持非可管理(单机)的环境
支持必要的附加功能,比如缓冲、查询、主键生成器、Map工具
下面,我们来详述这些特征
简易性
简易性之所以被我放在一个这么高的位置,是因为,对开发分布式应用来说已经很复杂了,很多软件项目的失败正是由于它们过于复杂的管理方式。简单不意味着过分简化。只要能满足开发者的工作就可以了
最少的嵌入
每个存储系统总是会嵌入一定的内容到程序代码中,良好的数据层应该最小化这种嵌入,从而提高可移植性
我这里指出的是嵌入是指:
所有需要嵌入程序中的有关存取相关的代码(实现一些存取接口或类似存取的操作),这种嵌入的情况同时也出现一些ODBMS中(object-oriented database systems),相比RDBMS它会少一些,嵌入的多少和不同ODBMS实现商的实现有关
透明性
数据存储层的透明性概念很简单:所有的应用程序使用与数据库类型无关(数据库类型透明性)、数据库提供商无关(提供商透明性)的统一API。这种特性通过隐藏数据库实现细节大大提高了代码的可维护性和扩展性.比如对操作那些流行的关系型数据库,可以不像JDBC那样编写繁杂的SQL语句并记住列的顺序.事实上你都不需要了解SQL或任何关系型概念,因为它们都太与数据库的实现相关了,透明性或许是数据层最重要的特性了
统一的、简洁的AP


您的位置:
