Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16493408
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:45:59

下载本文示例代码
  JDO(Java Data Object)是JCP中较早开发出来并形成规范的JSR12,该规范对数据的持久化存储进行了一系列规范,并已有众多的商业产品和开源项目是基于该规范。作为一种需要引起重视的技术,研究并探讨其企业应用可行性是十分重要的。  前言   在企业级的应用开发中,常需要有良好的持久化技术来支持数据存储。通过良好的规范或API,将企业的领域业务对象进行持久化存储,大多采用O/R映射技术来进行模式化的数据转换及自动映射工作。  JDO(Java Data Object)是JCP中较早开发出来并形成规范的JSR12,该规范对数据的持久化存储进行了一系列规范,并已有众多的商业产品和开源项目是基于该规范。作为一种需要引起重视的技术,研究并探讨其企业应用可行性是十分重要的。  以下主要对JDO(JDO 1.0规范)的应用开发技术作扼要介绍,通过该文,可以由浅入深、并较为全面地了解JDO,掌握主要的技术细节及过程,理解其运行机制,并对企业级应用有个总体的把握,这将有助于企业应用软件的技术选型、体系架构及分析设计活动。  该文适合企业应用架构师、及关心数据持久层设计开发人员。  JDO基本思想及特点  企业信息系统的一个重要问题是解决数据的存储,即持久化。在软件开发过程中,分析员分析领域业务,提取出领域业务模型,并对应设计出数据库中需要进行存储业务数据的数据库表及相应字段。  并根据业务流程,设计业务处理逻辑单元,进行数据的加工、处理及存储、查询等业务。其中一个较为繁烦、枯燥的工作,就是处理大量的数据持久化代码。为了解决数据从业务对象层向数据存储层之间的转换工作,JDO提供了相应的开发规范及API,解决了由Java对象直接存储为数据库相应表的底层处理过程,有助于设计人员更加专注于面向业务流程、面向业务对象等较高层次的应用。  由于采用JDO的映射机制,能降低了业务系统与数据存储系统的耦合,使得业务系统相对于关系数据库或对象型数据库,具有可移植性,同时,由于采用面向对象(而非传统的面向记录)的持久化技术,系统更为轻便、简洁,增强了可维护性。   JDO应用示例及分析  以下将通过一些示例,由浅及深地讲解JDO技术。  临时对象与持久对象  这是一个普通的业务对象的代码。 package business.model; public class Book {  private String isbn;  private String name;  private Date publishDate;  public void setISBN(String isbn){   this.isbn = isbn;  }  public String getISBN(){   return this.isbn;  }  public void setName(String name){   this.name = name;  }  public String getName(){   return this.name;  }  public void setPublishDate(Date pubDate){   this.publishDate = pubDate;  }  public Date getPublishDate(){   return this.publishDate;  } }   现在将它作为一个JDO中对象保存到数据库中。代码如下: Book book = new Book(); book.setISBN(“isbn-1234567”); book.setName(“Java设计模式”); PersistenceManager manager = persistenceManagerFactory.getPersistenceManager(); manager.currentTransaction().begin(); manager.makePersistence(book); manager.currentTransaction().commit();   Book类的实例book对JDO的API而言,就是一个持久对象。类Book是可持久类。那任何一个普通java类都是JDO的可持久类吗?不是的。只有具备以下的条件,一个对象才可以被JDO持久到数据库中。  它所属类应标记为可持久的类,有以下两种方法:   显式:实现接口,javax.jdo.PersistenceCapable即可;  隐式:以Sun的JDO参考实现为例,Book.java类的相同路径下还须有Book.jdo文件。 <?xml version=“1.0” encoding = “UTF-8”?> <!DOCTYPE jdo SYSTEM “jdo.dtd”> <jdo> <package name = “business.model”> <class name = “Book”/> </package> </jdo>   并通过字节码增强工具(本例采用Sun的字节码增强工具)处理, javac Book.java java com.sun.jdori.enhancer.Main Book.class Book.jdo。   通过上述两种方法,获得的Book.class才是一个可持久的类。  字节码增强的有如下功能:当应用程序通过set方法修改某个字段1时,由于通过增强过程,在其内部插入了某些代码,JDO会获得数据状态变化的信息,从而在持久过程中,进行有选择性的处理。  按照JDO规范,增强后的类可以在不同的JDO实现上使用,而无需重新编译或增强。  并不是所有Book对象都是持久对象,只有当makePersistence后,该对象才是持久对象,并会通过JDO实现存储到数据库中。通过JDO的供应商扩展标记符(vendor-extension),可详细描述Book类的存储特性,如为该可持久类指定数据库表和对应字段。 共4页。 1 2 3 4 :   JDO(Java Data Object)是JCP中较早开发出来并形成规范的JSR12,该规范对数据的持久化存储进行了一系列规范,并已有众多的商业产品和开源项目是基于该规范。作为一种需要引起重视的技术,研究并探讨其企业应用可行性是十分重要的。  前言   在企业级的应用开发中,常需要有良好的持久化技术来支持数据存储。通过良好的规范或API,将企业的领域业务对象进行持久化存储,大多采用O/R映射技术来进行模式化的数据转换及自动映射工作。  JDO(Java Data Object)是JCP中较早开发出来并形成规范的JSR12,该规范对数据的持久化存储进行了一系列规范,并已有众多的商业产品和开源项目是基于该规范。作为一种需要引起重视的技术,研究并探讨其企业应用可行性是十分重要的。  以下主要对JDO(JDO 1.0规范)的应用开发技术作扼要介绍,通过该文,可以由浅入深、并较为全面地了解JDO,掌握主要的技术细节及过程,理解其运行机制,并对企业级应用有个总体的把握,这将有助于企业应用软件的技术选型、体系架构及分析设计活动。  该文适合企业应用架构师、及关心数据持久层设计开发人员。  JDO基本思想及特点  企业信息系统的一个重要问题是解决数据的存储,即持久化。在软件开发过程中,分析员分析领域业务,提取出领域业务模型,并对应设计出数据库中需要进行存储业务数据的数据库表及相应字段。  并根据业务流程,设计业务处理逻辑单元,进行数据的加工、处理及存储、查询等业务。其中一个较为繁烦、枯燥的工作,就是处理大量的数据持久化代码。为了解决数据从业务对象层向数据存储层之间的转换工作,JDO提供了相应的开发规范及API,解决了由Java对象直接存储为数据库相应表的底层处理过程,有助于设计人员更加专注于面向业务流程、面向业务对象等较高层次的应用。  由于采用JDO的映射机制,能降低了业务系统与数据存储系统的耦合,使得业务系统相对于关系数据库或对象型数据库,具有可移植性,同时,由于采用面向对象(而非传统的面向记录)的持久化技术,系统更为轻便、简洁,增强了可维护性。   JDO应用示例及分析  以下将通过一些示例,由浅及深地讲解JDO技术。  临时对象与持久对象  这是一个普通的业务对象的代码。 package business.model; public class Book {  private String isbn;  private String name;  private Date publishDate;  public void setISBN(String isbn){   this.isbn = isbn;  }  public String getISBN(){   return this.isbn;  }  public void setName(String name){   this.name = name;  }  public String getName(){   return this.name;  }  public void setPublishDate(Date pubDate){   this.publishDate = pubDate;  }  public Date getPublishDate(){   return this.publishDate;  } }   现在将它作为一个JDO中对象保存到数据库中。代码如下: Book book = new Book(); book.setISBN(“isbn-1234567”); book.setName(“Java设计模式”); PersistenceManager manager = persistenceManagerFactory.getPersistenceManager(); manager.currentTransaction().begin(); manager.makePersistence(book); manager.currentTransaction().commit();   Book类的实例book对JDO的API而言,就是一个持久对象。类Book是可持久类。那任何一个普通java类都是JDO的可持久类吗?不是的。只有具备以下的条件,一个对象才可以被JDO持久到数据库中。  它所属类应标记为可持久的类,有以下两种方法:   显式:实现接口,javax.jdo.PersistenceCapable即可;  隐式:以Sun的JDO参考实现为例,Book.java类的相同路径下还须有Book.jdo文件。 <?xml version=“1.0” encoding = “UTF-8”?> <!DOCTYPE jdo SYSTEM “jdo.dtd”> <jdo> <package name = “business.model”> <class name = “Book”/> </package> </jdo>   并通过字节码增强工具(本例采用Sun的字节码增强工具)处理, javac Book.java java com.sun.jdori.enhancer.Main Book.class Book.jdo。   通过上述两种方法,获得的Book.class才是一个可持久的类。  字节码增强的有如下功能:当应用程序通过set方法修改某个字段1时,由于通过增强过程,在其内部插入了某些代码,JDO会获得数据状态变化的信息,从而在持久过程中,进行有选择性的处理。  按照JDO规范,增强后的类可以在不同的JDO实现上使用,而无需重新编译或增强。  并不是所有Book对象都是持久对象,只有当makePersistence后,该对象才是持久对象,并会通过JDO实现存储到数据库中。通过JDO的供应商扩展标记符(vendor-extension),可详细描述Book类的存储特性,如为该可持久类指定数据库表和对应字段。 共4页。 1 2 3 4 : 下载本文示例代码


JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究JDO技术分析及企业应用研究
阅读(151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~