正 文

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


www.7dspace.com  更新日期:2005-10-9 8:57:38  七度空间


  JDO参考实现

  JDO参考实现,来自于Sun微系统,已经可用,一同发行的还有一种被称为fstore的基于文件的存储机制。Sun已经把JDO捐献给开源社区。JDO1.0和JDO2.0将会作为Apache JDO项目的一部分进行开发。但是由于时间的限制,JDO2.0的参考实现并不是作为Apache项目建立的,而是作为一个JPOX 发行。一些商业实现也是可用的。

  JDO编程模型

  JDO定义了两种类型的接口:JDO API(在javax.jdo包中)和JDO服务提供者接口(SPI)(在javax.jdo.spi包中)。JDO API面向应用程序开发者,而JDO SPI面向容器提供者,和JDO卖主。

  一个应用程序包含两个主要的接口:

  ·PersistenceManagerFactory代表了应用程序开发者用来获得PersistenceManager实例的访问点。这个接口的实例可以被配置和序列化以备后来使用。然而,需要注意的是,一旦第一个PersistenceManager实例从PersistenceManagerFactory中被获得,这个工厂就不再是可配置。你可以使用下面的代码来获得PersistenceManagerFactory。

// 为JDO实现和数据存储设置一些属性
Properties props = new Properties();
props.put(...);
// 得到一个PersistenceManagerFactory
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory (props);

  ·PersistenceManager是JDO-aware应用部分的主要接口。它提供了方法来持久化一个对象,也可以重新得到持久对象和将它们从持久存储中移除。可以使用下面的方法获得PersistenceManager。

PersistenceManager pm = pmf.getPersistenceManager ();

  一旦获得了PersistenceManager对象后,应用程序就可以一些任务,例如:持久化一个对象、从持久数据中获得一个对象、从持久数据中删除一个对象、更新一个对象等等。

  接下来的代码片断示范了如何持久化一个对象,它更新一个对象的状态从Transient到Hollow。

Employee emp = new Employee("Sarah Jones", 23, 37000.00);
Transaction tx;
try {
 tx = pm.currentTransaction();
 tx.begin();
 pm.makePersistent(emp);
 tx.commit();
} catch (Exception e) {
 if(tx.isActive()) {
  tx.rollback();
 }
}

  从持久数据中获得一个对象同样简单,你可以使用Extent(一个信息的持有者)或者Query(提供了更精确的过滤)。下面是一个使用Extent的例子:

try {
 tx = pm.currentTransaction();
 tx.begin();
 Extend ex = pm.getExtent(Employee.class, true);
 Iterator i = ex.iterator();
 while(i.hasNext()) {
  Employee obj = (Employee) i.next();
 }
 tx.commit();
} catch (Exception e) {
 if(tx.isActive()) {
  tx.rollback();
 }
}

  最后,从持久数据中删除一个对象也可以简单完成,首先获得一个从持久数据中获得一个对象,然后调用deletePersistent(obj)方法。

5页,页码:[1] [2] [3] [4] [5] 

上一篇:在PowerPoint中插入视频的三种方法
下一篇:紫光拼音输入法崩溃之后的解决方案
作者:mydeman编译  来源:J2ME开发网 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐