分享
 
 
 

kodojdo指南第七章

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

第七章 PersistenceManagerFactory

PersistenceManagerFactory 创建PersistenceManager实例以供应用程序使用.它允许你配置数据连接方

式和指定所创建的PersistenceManager的默认设置.你也可以通过它在编程中获知你当前厂商支持的JDO选项

.使你能使用产品的全部特性来最优化你的程序.

7.1. 获得PersistenceManagerFactory

JDO厂商实现PersistenceManagerFactory 时也许支持公开的构造函数,但推荐你使用JDOHelper的

getPersistenceManagerFactory 方法来获得PersistenceManagerFactory方法.这个方法的属性参数提

供了工厂的配置信息.从getPersistenceManagerFactory 返回的PersistenceManagerFactory 对象是"

冰冻的",试图改变它的属性设置会导致JDOUserException.这是因为返回的工厂可能来自连接池,和其他应用

程序组建共享.

JDO要求具体的PersistenceManagerFactory 类实现Serializable 接口.这允许你创建和配置

PersistenceManagerFactory,然后序列化到文件或者存储到JNDI树供日后取出和使用.

7.2. PersistenceManagerFactory 属性

多数PersistenceManagerFactory 接口包含JAVA BEAN风格的getter 和setter方法来读取和设置属性

.这些属性按照功能可以分为两类:数据连接配置,默认持久化管理者和事务选项.

下面章节介绍了每一种属性,许多可以通过传给getPersistenceManagerFactory 方法的属性参数来设置

.这是一种情况.在方法声明后列出了属性的配置代码.

7.2.1. 连接配置

使用下面的属性告诉JDO如何连接你的数据库

1)指定数据连接的用户名

2)指定数据连接的密码

3)数据连接的URL

4)数据连接的驱动类名称

5)连接工厂的JNDI位置用来取得数据连接.这个属性会覆盖上面列出的数据连接属性.

连接工厂可以取得连接.这个属性覆盖所有其他的数据连接属性,包括连接工厂名称.工厂的准确类型是和具

体实现相关的,许多JDO实现品要求标准JAVA连接器体系连接工厂(JCA).在JDBC层上实现的JDO要求给出JDBC

数据源,其他的实现品会使用其他的工厂类型.

在一个受管制的环境,从主要连接工厂取得的连接会自动加入到正在进行的任一全局事务.JDO会要求一个另

外没有配置为参与全局事务的连接工厂.例如,Kodo默认的数据存储标识生成算法要求一个自身的非管制事务.

工厂的JNDI位置可以在这个属性中指定.

7.2.2. 默认的PersistenceManager 和事务

下面的设定会作为PersistenceManagers 和PersistenceManagerFactory生成的事务的默认属性值.一

些实现品可能不支持所有这些属性,如果你设置不支持属性的值,会导致JDOUnsupportedOptionException

1)设置这个属性为true.这样在你的程序里, PersistenceManagers 和它所管理的能持久类能被多线程的

访问.如果属性设为false,那么一些JDO实现品会通过避免同步的方式来优化性能.

2)默认值为true以使用最优化的事务.在事务的章节我们会讨论最优化事务.

3)如果这个属性值为true,那么在事务提交之后,持久对象的字段值不会被清空.否则,持久字段会被清空,在下

次访问它们的时候它们会再从数据库中读取值.

4)管理事务回滚时持久事务字段的行为.如果设为true,那么它们的值会被设为事务没有开始时的值.

5)指定是否在事务外读持久状态.如果属性为false,在事务之外,任何枚举extent, 执行查询或者访问非主键

行为都会导致JDOUserException

6)指定是否在事务外写持久状态.如果设为false,任何在事务外的修改持久字段行为都会导致

JDOUserException

注意事务外的更改并不会存储到数据库.当被修改对象一进入事务后更改就马上被忽略.

7)这个属性控制当执行查询时是否考虑持久实例的更改.设为true,则表示当前事务的更改可以忽略.这通常使

实现品可以使用数据库的本地接口来执行查询.如果设为false,JDO会在执行查询前保存数据的更改,或者在内

存中执行事务性查询.两者都会影响性能.

7.3. 获得PersistenceManagers

PersistenceManagerFactory 接口包含两个getPersistenceManager 方法.一个版本以用户名和密码

设置PersistenceManager的数据连接,另一个无参,依赖于PersistenceManagerFactory的连接用户名和连

接密码.

两个方法都会返回一个新构造的PersistenceManager对象或者返回连接池的一个PersistenceManager实例

.

从PersistenceManagerFactory获得第一个PersistenceManager 之后,工厂的配置进入"冰冻"状态.任

何对属性的改变都会导致JDOUserException.

VendorName: JDO厂商

VersionNumber: 产品版本号

The supportedOptions method returns a Collection of Strings enumerating the JDO

options supported by the implementation. The following option names are recognized:

除了支持PersistenceManagers,PersistenceManagerFactory 还支持当前JDO实现品的元数据

.getProperties 方法返回一个属性对象,至少包含下列关键字值:

VendorName: JDO厂商

VersionNumber: 产品版本号

supportedOptions 方法返回一个字符串集合,列举该JDO实现品所支持的配置选项.以下选项名是承认的:

javax.jdo.option.TransientTransactional

javax.jdo.option.NontransactionalRead

javax.jdo.option.NontransactionalWrite

javax.jdo.option.RetainValues

javax.jdo.option.Optimistic

javax.jdo.option.ApplicationIdentity

javax.jdo.option.DatastoreIdentity

javax.jdo.option.NonDurableIdentity

javax.jdo.option.ArrayList

javax.jdo.option.HashMap

javax.jdo.option.Hashtable

javax.jdo.option.LinkedList

javax.jdo.option.TreeMap

javax.jdo.option.TreeSet

javax.jdo.option.Vector

javax.jdo.option.Map

javax.jdo.option.List

javax.jdo.option.Array

javax.jdo.option.NullCollection

javax.jdo.option.ChangeApplicationIdentity

javax.jdo.query.JDOQL

Kodo支持除javax.jdo.option.ChangeApplicationIdentity和

javax.jdo.option.NonDurableIdentity. 之外的所有选项

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有