转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
Java数据对象(JDO)快速入门         ★★★★

Java数据对象(JDO)快速入门

作者:闵涛 文章来源:闵涛的学习笔记 点击数:631 更新时间:2009/4/22 23:29:50

  持久化Java技术对象到任何关系型数据库都是一项富有挑战性的任务,因为它必须潜心于序列化层次化结构的Java对象到基于表结构的数据库,反之亦然。这个挑战是独一无二的,因为将Java技术对象映射到数据库的列和记录的方式,必须要在速度和效率上同时达到最优化。Java数据对象(JDO)规范,JSR-12,为使用标准的方式来透明地持久化简单Java技术对象和访问数据库定义了API。使用JDO,Java应用程序开发者可以在不使用任何数据库特定代码的情况下编写代码访问底层的数据存储。JDO被设计成在一个企业架构的多重层次中工作,包括Java平台、标准版(Java SE,以前被称为J2SE)、web层和应用服务器。

  本文提供了JDO的指南,它包含了JDO的基本要素,并且提供了使用JDO持久化Java技术对象的示例代码。

  引言

  持久化,在程序退出后信息可以长期保存,在Java语言中可以使用不同的选择完成。最简单的是文件I/O,但是这种方式不适合在企业级存储中使用(原因很明显)。其它的选择包括以下几种:

  ·序列化(Serialization):API简单,不支持查询、多用户共享、事务处理和局部数据读取或更新。另外,它不适合大容量数据存储。

  ·JDBC软件:具有完全访问的SQL数据的功能。JDBC要求开发者必须显式地管理字段值以及把它们映射到关系数据库的表。在这种情况下,开发者必须熟悉另外一种开发语言(例如,查询语言SQL)。

  ·EJB架构容器管理持久性(CMP):作为Java企业级平台(Java EE,以前被称为J2EE)组件模型的一部分,CMP为EJB容器提供了一种简便的对象持久化服务。然而,它不是一种对于Java平台的普通持久化工具。

  一种可行的选择是JDO API,它提供了一种标准的方式,使用Java技术完成对象的持久化,通过结合XML元数据和增强的字节码简化了开发复杂性和降低开发成本。

  JDO架构

  高级的JDO API为开发者透明地存储数据提供了接口,开发者不必为每一种新的持久化数据存储而学习一种新的数据库访问语言(例如SQL)。JDO也可以使用低级的API(例如JDBC)来存储数据。它使开发者可以编写Java代码透明地访问底层的数据存储,而不需要使用数据库特定代码。JDO在JCP的项目中作为一个JSR开发:JDO1.0,从2002年开始存在,是JSR-12;JDO2.0,2005年初被核准并且正在开发中,是JSR-243。

  JDO2.0是一个适合于简单Java对象(POJOs)持久化特点的JSR规范,很多厂家都在提供竞争性的实现。另外,很多厂家很可能在同一个的产品中实现JDO2.0和EJB3.0。这就允许你同时使用两种API,为你提供了逐渐迁移到EJB3.0 POJO的简单方法,将会变为持久化模型的选择。

  JDO架构(如图1所示)的两个主要目的就是,为Java应用程序开发者提供透明地以Java技术为核心的访问持久化信息的方式,使数据存储的可插入式实现集成到应用服务器中。

JDO架构

图1 JDO架构
  请注意,JDO没有定义数据存储的类型:你可以使用同样的代码持久化的你的Java对象到关系型数据库、对象型数据库、XML和任何数据存储。

  使用JDO的好处主要包括以下几点:

  ·简便性(Portability):使用JDO API编写的程序可以在不同开发商的多种可用的实现上运行,不用修改一行代码,甚至不用重新编译。

  ·透明地访问数据库(Transparent database access):应用程序开发者编写代码透明地访问底层数据存储,而不需要使用任何数据库特定代码。

  ·易用性(Ease of use):JDO API允许开发者只需要关注他们自己范围内的数据模型(Domain Object Model,DOM),而持久化的细节就留给JDO实现。

  ·高性能(High Performance):Java应用程序开发者不需要担心数据访问的性能优化,因为这个任务已经委派给了JDO实现,它通过改善数据访问的模式以获得最佳性能。

  ·和EJB集成(Integration with EJB):应用程序可以利用EJB的特征,例如远程信息处理、自动分布式事务协调和贯穿整个企业级应用使用同样的DOMs实现安全性。

  使用JDO,vs. EJB和JDBC

  JDO并不意味着要取代JDBC。它们是两种以各自独一无二的能力互相补充的技术,具有不同技术背景和开发目的开发者可以使用二者中的一个。例如。JDBC通过直接的数据库访问控制和缓存管理,提供给开发者更大的弹性。JDBC是一种在工业界被广泛认可的成熟技术。另一方面,JDO,通过隐藏SQL提供给开发者更大的简便性。它将Java平台开发者从必须熟悉或学习SQL中解脱出来,而将精力集中在DOM上,同时JDO管理在持久存储中对象存储的字段到字段的细节。

  JDO被设计成EJB的补充。CMP为容器提供简便的持久化,而JDO可以以两种方式集成到EJB中:(1)通过会话Bean,它含有JDO Persistence-capable类(会话Bean的持久化助手类)用来实现依赖对象;(2)通过实体Bean,它含有被用作BMP和CMP代理的JDO Persistence-capable类。

  你可以学习更多关于JDO和JDBC之间的关系,还有EJB2.0 CMP和JDO之间的关系。

  POJO之路

  JDO和EJB之间在持久化模型上显著的差别曾经在开发者中间引起了混乱。作为回应,Sun微系统正领导一个社区项目为Java技术社区创建POJO持久化模型。这个项目在JSR-220的赞助下执行,由Linda DeMichiel领导。JDO2.0(JSR-243)的专家组成员被邀请加入到EJB3.0(JSR-220)专家组中。

  创建POJO持久化模型的目的是为所有使用Java SE和Java EE平台的Java应用程序开发者提供一个对象—关系(object-relational)映射工具。值得注意的是Oracle正以co-specification lead的身份加入到Sun EJB3.0。EJB3.0的公众评论草案已经可以得到。

  JSR-243(JDO2.0)遵循了那些来自于JSRs220和243规范的领导写给Java技术社区的信件所描述的轮廓。

  JDO2.0并不打算作为EJB3.0持久化特定API的集中,而是作为JDO1.0.2的发展。但是JDO的POJO持久化模型和EJB3.0之间的类似处,使得JDO的客户当使用JDO2.0满足立即的需求时,可以很容易的接受EJB3.0持久化模型。另外,JSR-243打算将JDOQL用作一种关于EJB3.0持久化数据的可选查询语言。这种语言了已经被更新从而可以更好地对EJB3.0使用。

  要了解更多关于持久化模型的知识,请查看EJB/JDO持久化FAQ。

  JDO Class类型

  在JDO中一共有三种类型的类:

  ·Persistence-capable:这种类型代表那些实例可以被持久化到一个数据存储中的类。请注意,这些类在JDO环境中被使用之前,需要通过JDO元数据规范进行加强。

  ·Persistence-aware:这些类操纵persistence-capable类。JDOHelper类包含了一些方法,它们允许询问一个persistence-capable类的实例的持久化状态。请注意,这些类使用最小化的JDO元数据加强。

  ·Normal:这些不可被持久化,并且对持久化一无所知。另外它们不需要JDO元数据。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台