javatm platform
standard ed. 6

javax.sql.rowset.spi
类 syncprovider

java.lang.object 继承者 javax.sql.rowset.spi.syncprovider

public abstract class syncprovider
extends object

为非连接 rowset 对象提供 reader/writer 功能的同步机制。syncprovider 实现是一个扩展了 syncprovider 抽象类的类。

syncprovider 实现由一个唯一<wéi yī> id 标识,该 id 即其完全<completely>限定类名称。此名称保紁iào>匦胂 syncfactory spi 注册,这样<zhè yàng>才能使该实现可用于所有<suǒ yǒu>的 rowset 实现。参考实现中的工厂机制使用此名称来实例化该实现,然后该实现可以<can>通过其 reader(javax.sql.rowsetreader 对象)和 writer(javax.sql.rowsetwriter 对象)提供一个 rowset 对象。

jdbc rowset 实现规范提供 syncprovider 抽象类的两个参考实现:rioptimisticproviderrixmlproviderrioptimisticprovider 可以<can>使用 rowsetreader 对象和 rowsetwriter 对象设置任何 rowset 实现。但是<dàn shì>,只有 rixmlprovider 实现可以设置 xmlreader 对象和 xmlwriter 对象。webrowset 对象使用 xmlreader 对象以 xml 格式读取数据,然后使用该数据填充本身。它使用 xmlwriter 对象以 xml 格式将本身写入到流或 java.io.writer 对象。

1.0 实现的命名约定

作为命名 syncprovider 实现的指南,应注意<危险信号>以下事项:

例如,如果名为 fred, inc. 的供应商提供了 syncprovider 实现,则可能<would>拥有以下内容:

 vendor name: fred, inc.   domain name of vendor: com.fred package name: com.fred.providers syncprovider implementation class name: highavailabilityprovider fully qualified class name of syncprovider implementation:    com.fred.providers.highavailabilityprovider 

以下代码行使用完全限定名称向 syncfactory 静态实例注册此实现。

 syncfactory.registerprovider(     "com.fred.providers.highavailabilityprovider"); 

通过参考实现提供的默认 syncprovider 对象使用以下名称:

 com.sun.rowset.providers.rioptimisticprovider 

供应商可以通过发送电子邮件到 jdbc@sun.com 向 sun microsystems 公司注册 syncprovider 实现类名称。sun 将维护列出可用 syncprovider 实现的数据库,以便与兼容 rowset 实现一起<with>使用。此数据库将类似于已维护列出可用 jdbc 驱动程序的数据库。

有关如何<rú hé>实现一个新的 syncprovider 实现的附加指南,供应商应参考参考实现同步提供者。

2.0 rowset 对象如何<rú hé>获取其提供者

非连接 rowset 对象可以使用以下两种方法之一获取对 syncprovider 对象的访问<visit>:

默认情况下,rowset 同步提供者的参考实现总是可用于 java 平台。如果没有正确地注册任何其他<qí tā>可插入的同步提供者,则 syncfactory 将自动生成一个默认 syncprovider 参考实现的实例。这样<zhè yàng>,在前述的代码片段中,如果没有任何名为 com.fred.providers.highavailabilitysyncprovider 的实现已向 syncfactory 实例注册,则 crs 将被分配一个参考实现中的默认提供者,它是 com.sun.rowset.providers.rioptimisticprovider

3.0 冲突<conflict>和同步问题<wèn tí>

如果非连接 rowset 对象和数据源之间的更新与初始查询或底层数据源约束发生<occasionally occurred>冲突<conflict>,则这将导致所有非连接 rowset 实现及其指派的 syncprovider 实现的行为不明确。不定义此类冲突发生<occasionally occurred>时的行为给 syncprovider 实现提供更大的灵活性,使它能自己<zì jǐ>决定如何反应。

syncprovider 实现可以选择实现特定的处理程序来处理查询冲突的子集。但是<dàn shì>,如果 syncprovider 实现没有处理原始查询冲突或更一般的数据源约束冲突,则所有的 syncprovider 对象必须抛出 syncproviderexception

4.0 可更新的 sql view

能够从 sql 查询(最初从 sql view 形成<caused><formed>)填充任何非连接或连接的 rowset 对象。虽然在许多<many>情况下能够对底层视图执行更新,但是此类更新需要附加的元数据,并且该数据可能<would>不同。syncprovider 类提供两个常量来指示实现是否支持<support>更新 sql view

如果使用取自 sql view 的数据填充 rowset 对象,则默认情况是它不可更新。

5.0 syncprovider 常量

syncprovider 类提供三个常量集,用作返回值或 syncprovider 方法的参数。可以实现 syncprovider 对象来使用不同的关心程度<attitudes>执行 rowset 对象与其底层数据源之间的同步。第一组常量指示如何处理同步。例如,grade_none 指示 syncprovider 对象将不会注意<危险信号>查看哪些数据有用,只是将 rowset 数据写入数据源。grade_modified_at_commit 指示提供者只检查修改数据的有效性。其他<qí tā>等级检查所有数据的有效性,或者在修改或加载数据时设置锁定。
  1. 指示 syncprovider 对象的同步等级的常量
  2. 指示在数据源上设置何种锁定的常量
  3. 指示 syncprovider 对象是否可以对 sql view 执行更新的常量
    在前述的章节 (4.0) 中已对这些常量进行了解释。

另请参见:
syncfactoryjs随机数,syncfactoryexception

字段摘要
static intdatasource_db_lock
          指示锁定整个数据源,该数据源是正在使用此 syncprovider 对象的 rowset 对象的数据源。
static intdatasource_no_lock
          指示在原始数据源上不保持任何锁定。
static intdatasource_row_lock
          指示锁定原始 sql 语句涉及的行,该语句用于填充正在使用此 syncprovider 对象的 rowset 对象。
static intdatasource_table_lock
          指示锁定原始 sql 语句涉及的所有表,该语句用于填充正在使用此 syncprovider 对象的 rowset 对象。
static intgrade_check_all_at_commit
          指示关于原始数据源的高级别乐观同步等级。
static intgrade_check_modified_at_commit
          指示关于原始数据源的低级别乐观同步等级。
static intgrade_lock_when_loaded
          指示关于原始数据源的最悲观同步等级。
static intgrade_lock_when_modified
          指示关于原始数据源的悲观同步等级。
static intgrade_none
          指示没有提供与原始数据源的同步。
static intnonupdatable_view_sync
          指示 syncprovider 实现支持 rowset 对象和用于填充它的 sql view 之间的同步。
static intupdatable_view_sync
          指示 syncprovider 实现支持 rowset 对象和用于填充它的 sql view 之间的同步。
 
构造方法摘要
syncprovider()
          创建默认的 syncprovider 对象。
 
方法摘要
abstract  intgetdatasourcelock()
          返回在此 syncprovider 实现中活动的当前数据源锁定严重性级别。
abstract  intgetprovidergrade()
          返回一个常量,它指示 rowset 对象希望<xī wàng>从此 syncprovider 对象获得的同步等级。
abstract  stringgetproviderid()
          返回此 syncprovider 对象的唯一<wéi yī>标识符。
abstract  rowsetreadergetrowsetreader()
          返回 javax.sql.rowsetreader 对象,它可以用于填充带有数据的 rowset 对象。
abstract  rowsetwritergetrowsetwriter()
          返回 javax.sql.rowsetwriter 对象,它可以用于将 rowset 对象的数据写回底层数据源。
abstract  string
英国4月中开始<kāi shǐ>出现<There>大量带有毒性的毛毛虫,人们若接触会导致发烧、呕吐、喉咙痛、呼吸困难、眼睛发炎、皮肤出现<There>红疹,甚至引发哮喘

本作为即时战斗模式,玩家通过任务、奇遇、探索等方式取得武学与心法,至少蕴藏着十多种武学套路、十多种绝学心法等着玩家来挖掘
第一次把台湾<tái wān>完完整整地包围在航线当中,体现了『宝岛在祖国怀中』的军事<jūn shì>态势
做为一个资深的新闻工作<gōng zuò>人员,不可讳言,我们都有经验,?穹枚韵蠊?世,我们写悼文删除电话号码与电子邮件绞掉名片,我做过很多次,但今晚,我不断流泪,五味杂陈,甜蜜的温暖的回忆、自责与后悔,如果时光能倒流,我是否可以做得再好一点?
美国费城一间星巴克咖啡<kā fēi>于上(4)月13日时,有两名<two>黑人男子进到店内没有点餐,店员竟然报警,警察<jǐng chá>来了<lai l>之后便逮捕这两人
别小看两性互动中的某些小细节,男生自以为没什么的事情<shì qing>,都可能伤透她的心
这是为甚么呢?因为在香蕉成熟后,果皮上会出现黑色斑点,代表处在最有营养价值阶段,甜度<attitudes>也最高
getvendor()
          返回此 syncprovider 实例的供应商名称
abstract  stringgetversion()
          返回此 syncprovider 实例的发行版本。
abstract  voidsetdatasourcelock(int datasource_lock)
          按照 datasource_lock 指示的级别在底层数据源上设置锁定。
abstract  intsupportsupdatableview()
          返回此 syncprovider 实现是否可以执行 rowset 对象和数据源(rowset 从中获取其数据)中的 sql view 之间的同步。
 
从类 java.lang.object 继承的方法
clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait
 

字段详细校約ense>畔

grade_none

public static int grade_none
指示没有提供与原始数据源的同步。返回此等级的 syncprovider 实现仅尝试将 rowset 对象中的更新写入底层数据源,而不检查任何数据的有效性。


grade_check_modified_at_commit

public static int grade_check_modified_at_commit
指示关于原始数据源的低级别乐观同步等级。返回此等级的 syncprovider 实现只检查已经<yǐ jing>更改的行。


grade_check_all_at_commit

public static int grade_check_all_at_commit
指示关于原始数据源的高级别乐观同步等级。返回此等级的 syncprovider 实现将检查所有的行,包括<bāo kuò>没有更改的行。


grade_lock_when_modified

public static int grade_lock_when_modified
指示关于原始数据源的悲观同步等级。返回此等级的 syncprovider 实现将锁定原始数据源中的行。


grade_lock_when_loaded

public static int grade_lock_when_loaded
指示关于原始数据源的最悲观同步等级。返回此等级的 syncprovider 实现将锁定用于填充 rowset 对象的原始语句所影响的整个视图和/或表。


datasource_no_lock

public static int datasource_no_lock
指示在原始数据源上不保持任何锁定。如果 rowset 对象没有其他指示,则这是所有 syncprovider 实现的默认锁定设置。


datasource_row_lock

public static int datasource_row_lock
指示锁定原始 sql 语句涉及的行,该语句用于填充正在使用此 syncprovider 对象的 rowset 对象。


datasource_table_lock

public static int datasource_table_lock
指示锁定原始 sql 语句涉及的所有表,该语句用于填充正在使用此 syncprovider 对象的 rowset 对象。


datasource_db_lock

public static int datasource_db_lock
指示锁定整个数据源,该数据源是正在使用此 syncprovider 对象的 rowset 对象的数据源。


updatable_view_sync

public static int updatable_view_sync
指示 syncprovider 实现支持 rowset 对象和用于填充它的 sql view 之间的同步。


nonupdatable_view_sync

public static int nonupdatable_view_sync
指示 syncprovider 实现支持 rowset 对象和用于填充它的 sql view 之间的同步。

构造方法详细信息

syncprovider

public syncprovider()
创建默认的 syncprovider 对象。

方法详细信息

getproviderid

public abstract string getproviderid()
返回此 syncprovider 对象的唯一标识符。

返回:
具有此 syncprovider 对象的完全限定类名的 string 对象

getrowsetreader

public abstract rowsetreader getrowsetreaderjs随机数()
返回 javax.sql.rowsetreader 对象,它可以用于填充带有数据的 rowset 对象。

返回:
javax.sql.rowsetreader 对象

getrowsetwriter

public abstract rowsetwriter getrowsetwriter()
返回 javax.sql.rowsetwriter 对象,它可以用于将 rowset 对象的数据写回底层数据源。

返回:
javax.sql.rowsetwriter 对象

getprovidergrade

public abstract int getprovidergrade()
返回一个常量,它指示 rowset 对象希望<xī wàng>从此 syncprovider 对象获得的同步等级。

返回:
一个 int,它是以下常量之一:syncprovider.grade_none、syncprovider.grade_check_modified_at_commit、syncprovider.grade_check_all_at_commit、syncprovider.grade_lock_when_modified、syncprovider.grade_lock_when_loaded

setdatasourcelock

public abstract void setdatasourcelock(int datasource_lock)      throws syncproviderexception
按照 datasource_lock网站地图 手机端 指示的级别在底层数据源上设置锁定。这应导致 syncprovider 为能成功<走上人生巅峰>同步而调整其行为,即增加或减少其提供的乐观级别。

参数:
datasource_lock - 以下常量之一,它指示所需数据源锁定的严重性级别:
  syncprovider.datasource_no_lock,  syncprovider.datasource_row_lock,  syncprovider.datasource_table_lock,  syncprovider.datasource_db_lock,  
抛出:
syncproviderexception - 如果设置不支持的数据源锁定级别。
另请参见:
getdatasourcelock()

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 
抛出:
syncproviderexceptiom - 如果在确定数据源锁定级别时发生错误。
syncproviderexception
另请参见:
setdatasourcelock(int)

supportsupdatableview

public abstract int supportsupdatableview()
返回此 syncprovider 实现是否可以执行 rowset 对象和数据源(rowset 从中获取其数据)中的 sql view 之间的同步。

返回:
一个 int,表示此 syncprovider 对象是否支持更新 sql view;它是以下常量之一:syncprovider.updatable_view_sync、syncprovider.nonupdatable_view_sync

getversion

public abstract string getversion()
返回此 syncprovider 实例的发行版本。

返回:
一个 string,它详述了 syncprovider 实现的发行版本

getvendor

public abstract string getvendor()
返回此 syncprovider 实例的供应商名称

返回:
一个 string,它详述了此 syncprovider 实现的供应商名称

javatm platform
standard ed. 6

提交错误或意见<yì jian>
有关更多的 api 参考资料和开发<kāi fā>人员文档,请参阅 java se 开发<kāi fā>人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作<gōng zuò>代码示例。

版权所有 2007 sun microsystems, inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策