分享
 
 
 

Java数据对象(JDO)的应用

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

在本篇文章中,我们将具体地讨论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驱动程序、用户名和口令。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有