public abstract class SyncProvider extends Object
RowSet
对象提供读/写能力。一个
SyncProvider
实现类的类
SyncProvider
抽象类。
一个SyncProvider
实现都有一个唯一的ID标识,这是它的完全限定类名。此名称必须与SyncFactory
SPI注册,从而提供给所有RowSet
实现实现。在参考实现工厂机构采用这个名字来实例化的实现,它可以提供一个RowSet
对象及其读者(一javax.sql.RowSetReader
对象)和作者(一javax.sql.RowSetWriter
对象)。
JDBC RowSet
实现规范提供的SyncProvider
抽象类两个参考实现:RIOptimisticProvider
和RIXMLProvider
,RIOptimisticProvider
可以用RowSetReader
对象和一个RowSetWriter
对象的任何RowSet
实现集。然而,只有RIXMLProvider
实现可以设定一个XmlReader
对象和XmlWriter
对象。一个WebRowSet
对象使用XmlReader
对象以xml格式与数据填充本身读取数据。它使用XmlWriter
对象写自己流或java.io.Writer
XML格式的对象。
SyncProvider
实现,以下几点应注意:
SyncProvider
为名实施的是它的完全限定类名。SyncProvider
实施的包中名为providers
。例如,如果一个供应商叫弗莱德,公司提供了一个SyncProvider
实现,你可以有以下:
供应商名称:弗莱德公司供应商的域名:com.fred软件名称:com.fred.providerssyncprovider实现类名称:highavailabilityprovider完全限定类名syncprovider实施:com.fred.providers.highavailabilityprovider
下面这行代码使用完全限定的名称与SyncFactory
静态实例登记实施。
syncfactory registerprovider(。“COM。弗莱德。供应商。highavailabilityprovider”);
默认SyncProvider
对象提供了参考实现使用下列名称:
com.sun.rowset.providers.rioptimisticprovider
供应商可以通过发送电子邮件jdbc@sun.com甲骨文公司登记一个SyncProvider
实现类的名字。Oracle会维护一个数据库列表使用兼容的RowSet
实现可用的SyncProvider
实现。该数据库将是一个类似于已列出可用的JDBC驱动程序。
供应商应该参考参考实现同步提供额外的指导如何实施新的SyncProvider
实施。
RowSet
对象获取供应商Rowset
对象可能在一个获得一个
SyncProvider
对象以下两个方面:
CachedRowSet CRS =新CachedRowSet(“COM。弗莱德。供应商。highavailabilitysyncprovider”);
新cachedrowset() CachedRowSet CRS =;CRS。setsyncprovider(“COM。弗莱德。供应商。highavailabilitysyncprovider”);
setSyncProvider
默认情况下,该RowSet
同步提供者的参考实现是始终可用的java平台。如果没有其他可同步提供者已正确注册,该SyncFactory
会自动生成默认的SyncProvider
参考实现的一个实例。因此,在前面的代码片段,如果没有实现命名com.fred.providers.HighAvailabilitySyncProvider
已与SyncFactory
实例注册,CRS将在参考实现指定默认的供应商,这是com.sun.rowset.providers.RIOptimisticProvider
。
RowSet
对象和一个数据源或违反原始查询基础数据源的限制,这将导致所有断开的
RowSet
实现和指定的
SyncProvider
实现定义的行为。未定义行为等违规行为的发生提供了一个
SyncProvider
实现确定自己的最佳行动过程更大的灵活性。
一个SyncProvider
实现可以选择执行特定的处理程序处理查询违法行为的一个子集。然而如果一个原始查询违章或更一般的数据源的约束违反不被SyncProvider
实施处理,所有SyncProvider
对象必须把SyncProviderException
。
RowSet
对象来填充一个SQL查询,制定最初从一个SQL
VIEW
。虽然在许多情况下,它是可能的一个基本视图进行更新,这样的更新需要额外的元数据,这可能会有所不同。的
SyncProvider
类提供了两个常数,指示是否支持SQL
VIEW
更新。
NONUPDATABLE_VIEW_SYNC
-表明SyncProvider
实现不使用SQL VIEW
为RowSet
对象的基础数据源支持同步。UPDATABLE_VIEW_SYNC
-表明SyncProvider
实施支持SQL VIEW
作为基础数据源同步。默认的是一个RowSet
对象不可更新,如果它是从一个SQL VIEW
数据填充。
SyncProvider
常数SyncProvider
类提供三套常数作为返回值或参数
SyncProvider
方法。
SyncProvider
对象可以执行一个
RowSet
对象及其基础数据源具有不同程度的护理之间的同步。常数的第一组表示如何处理同步处理。例如,
GRADE_NONE
表明
SyncProvider
对象将不采取任何关心哪些数据是有效的,只会写
RowSet
数据到数据源。
GRADE_MODIFIED_AT_COMMIT
表明供应商将只检查修改的数据的有效性。其他级别检查有效性或设置锁的所有数据,当数据被修改或加载。
SyncProvider
对象
SyncProvider
对象可以执行更新SQL VIEW
SyncFactory
,
SyncFactoryException
Modifier and Type | Field and Description |
---|---|
static int |
DATASOURCE_DB_LOCK
表明一个锁放在那就是利用这个
SyncProvider 对象的
RowSet 对象数据源的数据源。
|
static int |
DATASOURCE_NO_LOCK
指示没有锁保持在原始数据源上。
|
static int |
DATASOURCE_ROW_LOCK
表明锁放置在被用来填充,使用这种
SyncProvider 对象的
RowSet 对象原始的SQL语句摸排。
|
static int |
DATASOURCE_TABLE_LOCK
表明一个锁放在所有的表是用来填充,使用这种
SyncProvider 对象的
RowSet 对象原始的SQL语句感动。
|
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 用来填充它。
|
Constructor and Description |
---|
SyncProvider()
创建一个默认的
SyncProvider 对象。
|
Modifier and Type | Method and Description |
---|---|
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 对象和SQL
VIEW 数据源中的数据对象有
RowSet 。
|
public static final int GRADE_NONE
SyncProvider
实现返回这个年级会尝试写更新的
RowSet
对象基础数据源中没有任何数据的有效性检查。
public static final int GRADE_CHECK_MODIFIED_AT_COMMIT
SyncProvider
实现返回这个等级将只检查行了。
public static final int GRADE_CHECK_ALL_AT_COMMIT
SyncProvider
实现返回这个年级将检查所有的行,包括行没有改变。
public static final int GRADE_LOCK_WHEN_MODIFIED
SyncProvider
实现回归这等级将锁定排在原始数据源。
public static final int GRADE_LOCK_WHEN_LOADED
SyncProvider
实现返回这个级别将锁定整个表的查看和/或用来填充
RowSet
对象的原始语句的影响。
public static final int DATASOURCE_NO_LOCK
SyncProvider
实现设置,除非有
RowSet
对象。
public static final int DATASOURCE_ROW_LOCK
SyncProvider
对象的
RowSet
对象原始的SQL语句摸排。
public static final int DATASOURCE_TABLE_LOCK
SyncProvider
对象的
RowSet
对象原始的SQL语句感动。
public static final int DATASOURCE_DB_LOCK
SyncProvider
对象的
RowSet
对象数据源的数据源。
public static final int UPDATABLE_VIEW_SYNC
SyncProvider
支持
RowSet
对象和SQL之间的同步
VIEW
用来填充它。
public static final int NONUPDATABLE_VIEW_SYNC
SyncProvider
不实现
不支持同步
RowSet
对象和SQL
VIEW
用来填充它之间。
public abstract String getProviderID()
SyncProvider
。
SyncProvider
对象
String
对象
public abstract RowSetReader getRowSetReader()
javax.sql.RowSetReader
对象,这可以用数据填充
RowSet
对象。
javax.sql.RowSetReader
对象
public abstract RowSetWriter getRowSetWriter()
javax.sql.RowSetWriter
对象,它可以用来写一
RowSet
对象的数据返回到基础数据源。
javax.sql.RowSetWriter
对象
public abstract int getProviderGrade()
RowSet
对象可以期望从这个
SyncProvider
对象。
public abstract void setDataSourceLock(int datasource_lock) throws SyncProviderException
SyncProvider
通过增加或减少的乐观情绪提供了一个成功的同步调整自己的行为。
datasource_lock
-下面的一个常数,指示数据源所需的严重性级别:
syncprovider.datasource_no_lock,syncprovider.datasource_row_lock,syncprovider.datasource_table_lock,syncprovider.datasource_db_lock,锁
SyncProviderException
-如果不支持的数据源的锁定级别设置。
getDataSourceLock()
public abstract int getDataSourceLock() throws SyncProviderException
SyncProvider
实施积极的。
SyncProvider
活性水平;下列之一:
syncprovider.datasource_no_lock,syncprovider.datasource_row_lock,syncprovider.datasource_table_lock,syncprovider.datasource_db_lock
SyncProviderException
-如果出现错误,确定数据源的锁定级别。
setDataSourceLock(int)
public abstract int supportsUpdatableView()
SyncProvider
实施可以执行同步之间的
RowSet
对象和SQL
VIEW
数据源中的数据对象有
RowSet
。
int
说这是否
SyncProvider
对象支持更新SQL
VIEW
;下列之一:syncprovider.updatable_view_sync,syncprovider.nonupdatable_view_sync
public abstract String getVersion()
SyncProvider
实例的发布版本。
String
详细的
SyncProvider
实施发布版本
public abstract String getVendor()
SyncProvider
实例的供应商名称
String
详述此
SyncProvider
实施供应商名称
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.