网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Log4j的使用总结!(用于收藏救急.
.用UML设计Java应用程序.
.整型变量与字节数组的相互转换.
.探索空类的应用和性能分支.
.JDBC对数据库的事务操作.
.《精通EJB 3.0》前言.
.轻松掌握Java泛型(第3部分).
.JAVA的入门基础一些精典.
.利用Java Swing设计通用对话框.
.javazip_src_0.8alpha源代码发布.
.扫描整个网段的多线程程序.
.WebLogic Workshop 8.1中处理不带.
.用 for/in 在 Java 5.0 中增强循.
.最新JAVA手机群聊软件MSG横空出世.
.Java入门知识.
.TOMCAT 3.1的安装与配置简要介绍.
.拷贝文件的源代码.
.继承初始化.
.非java.util.zip,使用ant.jar制.
.java接口用法学习--------------.

Java 数据对象(JDO)介绍(一)

发表日期:2008-1-5



  介绍
  Java 数据对象 (JDO) 是一个存储Java对象的规范. 它已经被JCP组织定义成JSR12规范。JDO的第一个版本在2000年6月6日提交并在2002年4月30日正式发布1.0版本规范。
  规范的两个主要目的是提供数据处理和访问机制的API以及答应规范的实现作为应用服务器的一部分。
  
  JDO 和 JDBC
  JDBC和JDO都是Java调用数据库的APIs。区别在于,他们访问数据存储的具体方法不同。JDBC提供了一种非常好的机制,它可以使应用程序代码与具体的数据库厂商和数据库位置无关。在大多数情况下数据存储使用的是关系数据库。但是当使用JDBC驱动运行在一个非关系数据库时就不是很好了。而对于JDO来说,运行在它之下的数据库就可以是一个关系数据库,面向对象的数据库或者其他完全不同的数据库。在JDO运行于关系数据库之上时,它可以通过JDBC很好的完成数据存储。而这一切对于开发人员来说都是透明的,所有实现都有JDO本身来完成。
  
  JDBC不支持面向对象的数据库表示。JDBC数据库表示完全围绕关系数据库模型。这经常导致书写代码时在应用程序和数据库之间存在一个中间层。这个层的作用也许是分解Java对象。分解Java对象的过程会对使用的对象稍作改变,这样对象才能存储到关系数据库之中。同样的必须存在一种机制来把数据库中的记录转换成适当的Java对象。JDO与JDBC刚好相反,他的数据库标示完全面向对象。这种机制并不新奇,在一些面向对象数据库中已经使用了这种机制。
  JDBC的查询语言一般都是用SQL。JDO的查询语言看起来与Java更接近。使用JDO无需再专门学习一种查询语言比如SQL。假如你会用Java那么你就能够使用JDO的查询语言。
  
  JDO实现JDO规范定义了JDO实现的接口已经JDO实现的内容。SUN提供了一个JDO规范的参考实现,但是在2002年5月份发布的版本中它并没有完全实现规范中所要求的内容。还有众多的厂商提供的JDO实现可以使用。在下面的表格中列出了一部分。
  
  厂商 产品
  SolarMetric Kodo JDO
  Signsoft intelliBO
  Poet FastObjects
  
  API
  javax.jdo.spi.PersistenceCapable
  任何被JDO实现控制的类都必须扩展PersistenceCapable接口。任何扩展PersistenceCapable接口的类的实例都可以看作是一个“JDO实例”。这个接口定义了JDO实现使用的方法来控制类的实例。
  
  public abstract javax.jdo.PersistenceManager jdoGetPersistenceManager();
  public abstract void jdoReplaceStateManager(javax.jdo.spi.StateManager)
  throws SecurityException;
  public abstract void jdoProvideField(int);
  public abstract void jdoProvideFields(int[]);
  public abstract void jdoReplaceField(int);
  public abstract void jdoReplaceFields(int[]);
  public abstract void jdoReplaceFlags();
  public abstract void jdoCopyFields(Object, int[]);
  public abstract void jdoMakeDirty(String);
  public abstract Object jdoGetObjectId();
  public abstract Object jdoGetTransactionalObjectId();
  public abstract boolean jdoIsDirty();
  public abstract boolean jdoIsTransactional();
  public abstract boolean jdoIsPersistent();
  public abstract boolean jdoIsNew();
  public abstract boolean jdoIsDeleted();
  public abstract javax.jdo.spi.PersistenceCapable
  jdoNewInstance(javax.jdo.spi.StateManager);
  public abstract javax.jdo.spi.PersistenceCapable
  jdoNewInstance(javax.jdo.spi.StateManager, Object);
  public abstract Object jdoNewObjectIdInstance();
  public abstract Object jdoNewObjectIdInstance(String);
  public abstract void jdoCopyKeyFieldsToObjectId(Object);
  public abstract void jdoCopyKeyFieldsToObjectId(
  javax.jdo.spi.PersistenceCapable.ObjectIdFieldSupplier, Object);
  public abstract void jdoCopyKeyFieldsFromObjectId(
  javax.jdo.spi.PersistenceCapable.ObjectIdFieldConsumer, Object);
  
  通常会有一个由JDO实现厂商提供的工具来完成普通的Java类到“JDO实例”类的转化。
上一篇:Java 数据对象(JDO)介绍(二) 人气:542
下一篇:Java 数据库连接驱动程序类型 人气:1052
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐