WEB开发网
开发学院WEB开发Jsp Java数据对象(JDO)的应用 阅读

Java数据对象(JDO)的应用

 2008-01-05 19:21:39 来源:WEB开发网   
核心提示:在本篇文章中,我们将具体地讨论Sun公司的java数据对象(JDO)标准,Java数据对象(JDO)的应用,JDO答应我们使用Java对象,支持事务和多用户,这一点与在JDBC中设置数据库驱动程序的属性很相似, package addressbook; import java.util.*; import javax.

  在本篇文章中,我们将具体地讨论Sun公司的java数据对象(JDO)标准。JDO答应我们使用Java对象,支持事务和多用户。与ODBC不同的是,它使我们无需考虑SQL和与数据库有关的其他东西。它与串行化也有所区别,因为它支持多个用户和事务。JDO答应Java开发人员将他们的数据模型用作数据模型,无需在“数据端”、“对象端”之间的转移方面花费大量的时间。
  包括CocoBase、WebGain TOPLink和Castor JDO在内的多种产品都可以实现了JDO标准。既然有一种标准的方法,我们就可以只学习其中的一种,就象有了ODBC,我们就可以使用任何提供了驱动程序的数据库那样。
  在本篇文章中,我们将使用PRism技术公司的OpenFusion JDO。读者在后面会发现,只有很小一部分代码使用了PrismTech API,其他部分都使用了标准的JDO标准。
  创建Person对象
  我们将首先创建一个Person对象,该对象遵循了JavaBean的惯例,可以对其属性执行get和set操作。需要注重的是,尽管我们是在创建这个类,但它并没有什么非凡的,它没有继续或实现任何基本类。对一个可保持类的要求是:
  1、所有域必须能够被JDO类访问(public或set*方法)
  2、域的数据类型必须符合JDO规格。
  3、不能支持一些类型的字段(例如Thread、File、Socket等不能串行化的字段)。
  下面是符合上述要求的Person.java:
  
  public class Person {
  private String name;
  private String address;
  private String ssn;
  private String email;
  private String homePhone;
  private String workPhone;
  
  // 答应我们使用构造器创建Person对象
  public Person(String name, String address, String ssn,
  String email, String homePhone, String workPhone) {
  this.name = name;
  this.address = address;
  this.ssn = ssn;
  this.email = email;
  this.homePhone = homePhone;
  this.workPhone = workPhone;
  }
  
  
  // 方法
  public String getName() { return name; }
  
  public String getAddress() { return address; }
  
  public String getSsn() { return ssn; }
  
  public String getEmail() { return email; }
  
  public String getHomePhone() { return homePhone; }
  
  public String getWorkPhone() { return workPhone; }
  
  public void setName(String name) { this.name = name; }
  
  public void setAddress(String address) {
  this.address = address;
  }
  
  public void setSsn(String ssn) { this.ssn = ssn; }
  
  public void setEmail(String email) { this.email = email; }
  
  public void setHomePhone(String homePhone) {
  this.homePhone = homePhone;
  }
  public void setWorkPhone(String workPhone) {
  this.workPhone = workPhone;
  }
  }
  创建PersonPersist对象治理可保持性
  现在已经有了Person对象,我们需要创建一些代码来治理这种可保持性。下面我们将具体讨论这些代码,并学习如何:
  1、初始化JDO可保持性治理器。
  2、向数据库中输入三个人的资料。
  3、从数据库中显示人的资料。
  4、修改其中一个人的名字。
  5、从数据库中删除一个人的资料。
  6、在main()方法中进行相关的处理。
  第一步:初始化JDO可保持性治理器
  我们从OpenFusion实现中导入了标准的JDO类和ManagedConnectionFactory,当然了我们也可以将它们抽象成一个独立的类。构造器使用javax.jdo.PersistenceManagerFactoryClass属性设置连接代理,这一点与在JDBC中设置数据库驱动程序的属性很相似。
  package addressbook;
  
  import java.util.*;
  import javax.jdo.*;
  
  import
  com.prismt.j2ee.connector.jdbc.ManagedConnectionFactoryImpl;
  
  public class PersonPersist
  {
  private final static int SIZE = 3;
  private PersistenceManagerFactory pmf = null;
  private PersistenceManager pm = null;
  private Transaction transaction = null;
  
  // 需要保持的人的数组
  private Person[] people;
  // 现有对象标识符的向量
  private Vector id = new Vector(SIZE);
  
  public PersonPersist() {
  try {
  Properties props = new Properties();
  
  props.setProperty("javax.jdo.PersistenceManagerFactoryClass",
  "com.prismt.j2ee.jdo.PersistenceManagerFactoryImpl");
  pmf = JDOHelper.getPersistenceManagerFactory(props);
  pmf.setConnectionFactory( createConnectionFactory() );
  } catch(Exception ex) {
  ex.printStackTrace();
  System.exit(1);
  }
  }
  连接代理是在名字为createConnectionFactory()的静态方法中创建的,该代理需要JDBC URL、JDBC驱动程序、用户名和口令。

Tags:Java 数据 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接