©
本文档使用
php.cn手册 发布
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
1 2 |
|
1 |
|
为非连接 RowSet
对象提供 reader/writer 功能的同步机制。SyncProvider
实现是一个扩展了 SyncProvider
抽象类的类。
SyncProvider
实现由一个唯一 ID 标识,该 ID 即其完全限定类名称。此名称必须向 SyncFactory
SPI 注册,这样才能使该实现可用于所有的 RowSet
实现。参考实现中的工厂机制使用此名称来实例化该实现,然后该实现可以通过其 reader(javax.sql.RowSetReader
对象)和 writer(javax.sql.RowSetWriter
对象)提供一个 RowSet
对象。
Jdbc RowSet
实现规范提供 SyncProvider
抽象类的两个参考实现:RIOptimisticProvider
和 RIXMLProvider
。RIOptimisticProvider
可以使用 RowSetReader
对象和 RowSetWriter
对象设置任何 RowSet
实现。但是,只有 RIXMLProvider
实现可以设置 XmlReader
对象和 XmlWriter
对象。WebRowSet
对象使用 XmlReader
对象以 XML 格式读取数据,然后使用该数据填充本身。它使用 XmlWriter
对象以 XML 格式将本身写入到流或 java.io.Writer
对象。
SyncProvider
实现的指南,应注意以下事项:
SyncProvider
实现的名称是其完全限定类名称。
providers
的包中提供 SyncProvider
实现。
例如,如果名为 Fred, Inc. 的供应商提供了 SyncProvider
实现,则可能拥有以下内容:
1 2 3 4 5 6 7 |
|
以下代码行使用完全限定名称向 SyncFactory
静态实例注册此实现。
1 2 |
|
通过参考实现提供的默认 SyncProvider
对象使用以下名称:
1 |
|
供应商可以通过发送电子邮件到 jdbc@sun.com 向 Sun Microsystems 公司注册 SyncProvider
实现类名称。Sun 将维护列出可用 SyncProvider
实现的数据库,以便与兼容 RowSet
实现一起使用。此数据库将类似于已维护列出可用 JDBC 驱动程序的数据库。
有关如何实现一个新的 SyncProvider
实现的附加指南,供应商应参考参考实现同步提供者。
RowSet
对象如何获取其提供者Rowset
对象可以使用以下两种方法之一获取对 SyncProvider
对象的访问:
1 2 |
|
setSyncProvider
方法
1 2 |
|
默认情况下,RowSet
同步提供者的参考实现总是可用于 Java 平台。如果没有正确地注册任何其他可插入的同步提供者,则 SyncFactory
将自动生成一个默认 SyncProvider
参考实现的实例。这样,在前述的代码片段中,如果没有任何名为 com.fred.providers.HighAvailabilitySyncProvider
的实现已向 SyncFactory
实例注册,则 crs 将被分配一个参考实现中的默认提供者,它是 com.sun.rowset.providers.RIOptimisticProvider
。
RowSet
对象和数据源之间的更新与初始查询或底层数据源约束发生冲突,则这将导致所有非连接 RowSet
实现及其指派的 SyncProvider
实现的行为不明确。不定义此类冲突发生时的行为给 SyncProvider
实现提供更大的灵活性,使它能自己决定如何反应。
SyncProvider
实现可以选择实现特定的处理程序来处理查询冲突的子集。但是,如果 SyncProvider
实现没有处理原始查询冲突或更一般的数据源约束冲突,则所有的 SyncProvider
对象必须抛出 SyncProviderException
。
VIEW
形成)填充任何非连接或连接的 RowSet
对象。虽然在许多情况下能够对底层视图执行更新,但是此类更新需要附加的元数据,并且该数据可能不同。SyncProvider
类提供两个常量来指示实现是否支持更新 SQL VIEW
。
NONUPDATABLE_VIEW_SYNC
- 指示将 SQL VIEW
作为 RowSet
对象的数据底层源的情况下,SyncProvider
实现不支持与它的同步。
UPDATABLE_VIEW_SYNC
- 指示将 SQL VIEW
作为数据底层源的情况下,SyncProvider
实现支持与它的同步。
如果使用取自 SQL VIEW
的数据填充 RowSet
对象,则默认情况是它不可更新。
SyncProvider
常量SyncProvider
类提供三个常量集,用作返回值或 SyncProvider
方法的参数。可以实现 SyncProvider
对象来使用不同的关心程度执行 RowSet
对象与其底层数据源之间的同步。第一组常量指示如何处理同步。例如,GRADE_NONE
指示 SyncProvider
对象将不会注意查看哪些数据有用,只是将 RowSet
数据写入数据源。GRADE_MODIFIED_AT_COMMIT
指示提供者只检查修改数据的有效性。其他等级检查所有数据的有效性,或者在修改或加载数据时设置锁定。
SyncProvider
对象的同步等级的常量
SyncProvider
对象是否可以对 SQL VIEW
执行更新的常量
SyncFactory
,
SyncFactoryException
字段摘要 | |
---|---|
static int |
DATASOURCE_DB_LOCK
指示锁定整个数据源,该数据源是正在使用此 SyncProvider 对象的 RowSet 对象的数据源。 |
static int |
DATASOURCE_NO_LOCK
指示在原始数据源上不保持任何锁定。 |
static int |
DATASOURCE_ROW_LOCK
指示锁定原始 SQL 语句涉及的行,该语句用于填充正在使用此 SyncProvider 对象的 RowSet 对象。 |
static int |
DATASOURCE_TABLE_LOCK
指示锁定原始 SQL 语句涉及的所有表,该语句用于填充正在使用此 SyncProvider 对象的 RowSet 对象。 |
static int |
GRADE_CHECK_ALL_AT_COMMIT
指示关于原始数据源的高级别乐观同步等级。 |
static int |
GRADE_CHECK_MODIFIED_AT_COMMIT
指示关于原始数据源的低级别乐观同步等级。 |
static int |
GRADE_LOCK_WHEN_LOADED
指示关于原始数据源的最悲观同步等级。 |
static int |
GRADE_LOCK_WHEN_MODIFIED
指示关于原始数据源的悲观同步等级。 |
static int |
GRADE_NONE
指示没有提供与原始数据源的同步。 |
static int |
NONUPDATABLE_VIEW_SYNC
指示 SyncProvider 实现不支持 RowSet 对象和用于填充它的 SQL VIEW 之间的同步。 |
static int |
UPDATABLE_VIEW_SYNC
指示 SyncProvider 实现支持 RowSet 对象和用于填充它的 SQL VIEW 之间的同步。 |
构造方法摘要 | |
---|---|
SyncProvider()
创建默认的 SyncProvider 对象。 |
方法摘要 | |
---|---|
abstract int |
getDataSourceLock()
返回在此 SyncProvider 实现中活动的当前数据源锁定严重性级别。 |
abstract int |
getProviderGrade()
返回一个常量,它指示 RowSet 对象希望从此 SyncProvider 对象获得的同步等级。 |
abstract String |
getProviderID()
返回此 SyncProvider 对象的唯一标识符。 |
abstract RowSetReader |
getRowSetReader()
返回 javax.sql.RowSetReader 对象,它可以用于填充带有数据的 RowSet 对象。 |
abstract RowSetWriter |
getRowSetWriter()
返回 javax.sql.RowSetWriter 对象,它可以用于将 RowSet 对象的数据写回底层数据源。 |
abstract String |
getVendor()
返回此 SyncProvider 实例的供应商名称 |
abstract String |
getVersion()
返回此 SyncProvider 实例的发行版本。 |
abstract void |
setDataSourceLock(int datasource_lock)
按照 datasource_lock 指示的级别在底层数据源上设置锁定。 |
abstract int |
supportsUpdatableView()
返回此 SyncProvider 实现是否可以执行 RowSet 对象和数据源(RowSet 从中获取其数据)中的 SQL VIEW 之间的同步。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
1 |
|
SyncProvider
实现仅尝试将 RowSet
对象中的更新写入底层数据源,而不检查任何数据的有效性。
1 |
|
SyncProvider
实现只检查已经更改的行。
1 |
|
SyncProvider
实现将检查所有的行,包括没有更改的行。
1 |
|
SyncProvider
实现将锁定原始数据源中的行。
1 |
|
SyncProvider
实现将锁定用于填充 RowSet
对象的原始语句所影响的整个视图和/或表。
1 |
|
RowSet
对象没有其他指示,则这是所有 SyncProvider
实现的默认锁定设置。
1 |
|
SyncProvider
对象的 RowSet
对象。
1 |
|
SyncProvider
对象的 RowSet
对象。
1 |
|
SyncProvider
对象的 RowSet
对象的数据源。
1 |
|
SyncProvider
实现支持 RowSet
对象和用于填充它的 SQL VIEW
之间的同步。
1 |
|
SyncProvider
实现不支持 RowSet
对象和用于填充它的 SQL VIEW
之间的同步。
构造方法详细信息 |
---|
1 |
|
SyncProvider
对象。
方法详细信息 |
---|
1 |
|
SyncProvider
对象的唯一标识符。
SyncProvider
对象的完全限定类名的 String
对象1 |
|
javax.sql.RowSetReader
对象,它可以用于填充带有数据的 RowSet
对象。
javax.sql.RowSetReader
对象1 |
|
javax.sql.RowSetWriter
对象,它可以用于将 RowSet
对象的数据写回底层数据源。
javax.sql.RowSetWriter
对象1 |
|
RowSet
对象希望从此 SyncProvider
对象获得的同步等级。
1 2 |
|
SyncProvider
为能成功同步而调整其行为,即增加或减少其提供的乐观级别。
datasource_lock
- 以下常量之一,它指示所需数据源锁定的严重性级别:
1 2 3 4 |
|
SyncProviderException
- 如果设置不支持的数据源锁定级别。getDataSourceLock()
1 2 |
|
SyncProvider
实现中活动的当前数据源锁定严重性级别。
SyncProvider
对象中活动的数据源锁定的当前级别;是以下常量之一:
1 2 3 4 |
|
SyncProviderExceptiom
- 如果在确定数据源锁定级别时发生错误。
SyncProviderException
setDataSourceLock(int)
1 |
|
SyncProvider
实现是否可以执行 RowSet
对象和数据源(RowSet
从中获取其数据)中的 SQL VIEW
之间的同步。
int
,表示此 SyncProvider
对象是否支持更新 SQL VIEW
;它是以下常量之一:SyncProvider.UPDATABLE_VIEW_SYNC、SyncProvider.NONUPDATABLE_VIEW_SYNC1 |
|
SyncProvider
实例的发行版本。
String
,它详述了 SyncProvider
实现的发行版本1 |
|
SyncProvider
实例的供应商名称
String
,它详述了此 SyncProvider
实现的供应商名称
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。