uTools-Manuals/docs/java/javax/sql/rowset/spi/SyncProvider.html

753 lines
36 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.sql.rowset.spi
</div>
<h2 class="title" title="Class SyncProvider">Class SyncProvider</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.sql.rowset.spi.SyncProvider</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">SyncProvider</span>
extends <a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>同步机制,可为断开<code>RowSet</code>对象提供读写器功能。</span>
<span>一个<code>SyncProvider</code>实现是一个扩展<code>SyncProvider</code>抽象类的类。</span>
<p> <span>A <code>SyncProvider</code>实现由唯一的ID标识唯一的ID是完全限定的类名。</span> <span>该名称必须在<code>SyncFactory</code> SPI上注册从而使实现可用于所有<code>RowSet</code>实现。</span> <span>在参考实施工厂机制使用该名称来实例化的实施,则其可提供<code>RowSet</code>对象与其读取器(一个<code>javax.sql.RowSetReader</code>对象)及其写入器(一个<code>javax.sql.RowSetWriter</code>对象)。</span> </p>
<p> <span>Jdbc <code>RowSet</code>实现规范提供了<code>SyncProvider</code>抽象类的两个参考实现: <code>RIOptimisticProvider</code><code>RIXMLProvider</code></span> <span><code>RIOptimisticProvider</code>可以使用<code>RowSetReader</code>对象和<code>RowSetWriter</code>对象设置任何<code>RowSet</code>实现。</span> <span>但是,只有<code>RIXMLProvider</code>实现可以设置<code>XmlReader</code>对象和<code>XmlWriter</code>对象。</span> <span><code>WebRowSet</code>对象使用<code>XmlReader</code>对象以XML格式读取数据以填充该数据。</span> <span>它使用<code>XmlWriter</code>对象将其自身写入流或<code>java.io.Writer</code>对象以XML格式。</span> </p>
<h3> <span>1.0实施命名约定</span> </h3>
<span>作为<code>SyncProvider</code>实现的指南,应注意以下几点:</span>
<ul>
<li> <span>对于这个名字<code>SyncProvider</code>实现其完全限定类名。</span> </li>
<li> <span>建议厂商提供一个<code>SyncProvider</code>在一个名为软件包实施<code>providers</code></span> </li>
</ul>
<p> <span>例如如果名为FredInc.的供应商提供了一个<code>SyncProvider</code>实现,则可以具有以下内容:</span> </p>
<pre> <span>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</span> </pre>
<p> <span>以下代码行使用完全限定名来使用<code>SyncFactory</code>静态实例注册此实现。</span> </p>
<pre> <span>SyncFactory.registerProvider(
"com.fred.providers.HighAvailabilityProvider");</span> </pre>
<p> <span>提供参考实现的默认<code>SyncProvider</code>对象使用以下名称:</span> </p>
<pre> <span>com.sun.rowset.providers.RIOptimisticProvider</span> </pre>
<p> <span>供应商可以通过向jdbc@sun.com发送电子邮件向Oracle Corporation注册一个<code>SyncProvider</code>实现类名称。</span> <span>Oracle将维护一个数据库列出可用的<code>SyncProvider</code>实现,以便与符合<code>RowSet</code>的RowSet <code>SyncProvider</code>一起使用。</span> <span>该数据库将与已经维护的数据库类似以列出可用的JDBC驱动程序。</span> </p>
<p> <span>供应商应参考参考实现同步提供程序,以获取有关如何实现新的<code>SyncProvider</code>实现的更多指导。</span> </p>
<h3> <span>2.0 <code>RowSet</code>对象如何获取它的提供者</span> </h3>
<span>断开连接的<code>Rowset</code>对象可以通过以下两种方式之一访问<code>SyncProvider</code>对象:</span>
<ul>
<li> <span>使用构造函数</span> <br/><pre> <span>CachedRowSet crs = new CachedRowSet(
"com.fred.providers.HighAvailabilitySyncProvider");</span> </pre></li>
<li> <span>使用<code>setSyncProvider</code>方法</span> <pre> <span>CachedRowSet crs = new CachedRowSet();
crs.setSyncProvider("com.fred.providers.HighAvailabilitySyncProvider");</span> </pre></li>
</ul>
<p> <span>默认情况下RowSet同步提供程序的<code>RowSet</code>实现始终可用于Java平台。</span> <span>如果没有其他可插拔同步提供程序已经被正确注册,那么<code>SyncFactory</code>将自动生成默认的<code>SyncProvider</code>参考实现的实例。</span> <span>因此,在上述代码片段中,如果没有在<code>SyncFactory</code>实例中注册了名为<code>com.fred.providers.HighAvailabilitySyncProvider</code><code>SyncFactory</code> ,则<i>crs</i>将被分配给参考实现中的默认提供者,即<code>com.sun.rowset.providers.RIOptimisticProvider</code></span> </p>
<h3> <span>3.0违规和同步问题</span> </h3>
<span>如果断开连接的<code>RowSet</code>对象和数据源之间的更新违反原始查询或基础数据源约束,则会导致所有断开<code>RowSet</code> RowSet实现及其指定的<code>SyncProvider</code>实现的未定义行为。</span>
<span>当发生这种违规行为时,不定义行为为<code>SyncProvider</code>实施确定自己最佳行动方案提供了更大的灵活性。</span>
<p> <span>A <code>SyncProvider</code>实现可以选择实现特定的处理程序来处理查询违规的一个子集。</span> <span>但是如果SyncProvider实施不处理原始查询违规或更一般的数据源<code>SyncProvider</code>违规,则所有<code>SyncProvider</code>对象都必须抛出<code>SyncProviderException</code></span> </p>
<h3> <span>4.0可更新的SQL VIEW</span> </h3>
<span>这是可能的任何断开或连接<code>RowSet</code>对象从每个从SQL最初制定了一个SQL查询来填充<code>VIEW</code></span>
<span>虽然在许多情况下可以对基础视图执行更新,但是这种更新需要额外的元数据,这可能会有所不同。</span>
<span><code>SyncProvider</code>类提供两个常量来指示实现是否支持更新SQL <code>VIEW</code></span>
<ul>
<li> <span><code><b>NONUPDATABLE_VIEW_SYNC</b></code> - 表示<code>SyncProvider</code>实现不支持与SQL <code>VIEW</code>作为<code>RowSet</code>对象的基础数据源。</span> </li>
<li> <span><code><b>UPDATABLE_VIEW_SYNC</b></code> - 表示<code>SyncProvider</code>实现支持与SQL <code>VIEW</code>作为基础数据源。</span> </li>
</ul>
<p> <span>如果<code>RowSet</code>对象使用SQL <code>VIEW</code>数据填充,则默认值不可<code>VIEW</code></span> </p>
<h3> <span>5.0 <code>SyncProvider</code>常数</span> </h3>
<span><code>SyncProvider</code>类提供了三组常数,用作<code>SyncProvider</code>方法的返回值或参数。</span>
<span><code>SyncProvider</code>对象可以被实现为以不同程度的谨慎来执行RowSet对象及其底层数据源之间的<code>RowSet</code></span>
<span>第一组常量表示如何处理同步。</span>
<span>例如, <code>GRADE_NONE</code>表示<code>SyncProvider</code>对象不会关心哪些数据有效,并且将简单地将<code>RowSet</code>数据写入数据源。</span>
<span><code>GRADE_MODIFIED_AT_COMMIT</code>表示提供者只会检查修改后的数据是否有效。</span>
<span>其他等级检查数据是否有效,或者在数据修改或加载时设置锁定。</span>
<ol>
<li> <span>常数表示<code>SyncProvider</code>对象的同步等级</span>
<ul>
<li> <span>SyncProvider.GRADE_NONE</span> </li>
<li> <span>SyncProvider.GRADE_MODIFIED_AT_COMMIT</span> </li>
<li> <span>SyncProvider.GRADE_CHECK_ALL_AT_COMMIT</span> </li>
<li> <span>SyncProvider.GRADE_LOCK_WHEN_MODIFIED</span> </li>
<li> <span>SyncProvider.GRADE_LOCK_WHEN_LOADED</span> </li>
</ul></li>
<li> <span>指示在数据源上设置什么锁的常量</span>
<ul>
<li> <span>SyncProvider.DATASOURCE_NO_LOCK</span> </li>
<li> <span>SyncProvider.DATASOURCE_ROW_LOCK</span> </li>
<li> <span>SyncProvider.DATASOURCE_TABLE_LOCK</span> </li>
<li> <span>SyncProvider.DATASOURCE_DB_LOCK</span> </li>
</ul></li>
<li> <span>指示<code>SyncProvider</code>对象是否可以执行对SQL <code>VIEW</code>更新的<code>VIEW</code></span> <br/> <span>这些常数在前面的部分4.0)中有说明。</span>
<ul>
<li> <span>SyncProvider.UPDATABLE_VIEW_SYNC</span> </li>
<li> <span>SyncProvider.NONUPDATABLE_VIEW_SYNC</span> </li>
</ul></li>
</ol>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../javax/sql/rowset/spi/SyncFactory.html" title="javax.sql.rowset.spi中的类"><code>SyncFactory</code></a> <a href="../../../../javax/sql/rowset/spi/SyncFactoryException.html" title="javax.sql.rowset.spi中的类"><code>SyncFactoryException</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption>
<span>Fields</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#DATASOURCE_DB_LOCK">DATASOURCE_DB_LOCK</a></span></code>
<div class="block">
表示在整个数据源上放置一个锁,该数据源是使用此
<code>SyncProvider</code>对象的
<code>RowSet</code>对象的数据源。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#DATASOURCE_NO_LOCK">DATASOURCE_NO_LOCK</a></span></code>
<div class="block">
表示始发数据源上没有锁。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#DATASOURCE_ROW_LOCK">DATASOURCE_ROW_LOCK</a></span></code>
<div class="block">
表示锁定被放置在用于填充使用此
<code>SyncProvider</code>对象的
<code>RowSet</code>对象的原始SQL语句所触及的行上。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#DATASOURCE_TABLE_LOCK">DATASOURCE_TABLE_LOCK</a></span></code>
<div class="block">
表示在用于填充使用此
<code>SyncProvider</code>对象的
<code>RowSet</code>对象的原始SQL语句所触及的所有表上都会放置一个锁。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#GRADE_CHECK_ALL_AT_COMMIT">GRADE_CHECK_ALL_AT_COMMIT</a></span></code>
<div class="block">
表示相对于始发数据源的高级乐观同步等级。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#GRADE_CHECK_MODIFIED_AT_COMMIT">GRADE_CHECK_MODIFIED_AT_COMMIT</a></span></code>
<div class="block">
表示相对于始发数据源的低级乐观同步等级。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#GRADE_LOCK_WHEN_LOADED">GRADE_LOCK_WHEN_LOADED</a></span></code>
<div class="block">
表示相对于始发数据源最悲观的同步等级。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#GRADE_LOCK_WHEN_MODIFIED">GRADE_LOCK_WHEN_MODIFIED</a></span></code>
<div class="block">
表示相对于始发数据源的悲观同步等级。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#GRADE_NONE">GRADE_NONE</a></span></code>
<div class="block">
表示不提供与始发数据源的同步。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#NONUPDATABLE_VIEW_SYNC">NONUPDATABLE_VIEW_SYNC</a></span></code>
<div class="block">
表明
<code>SyncProvider</code>实现
<b></b>支持之间的同步
<code>RowSet</code>对象和SQL
<code>VIEW</code>用来填充它。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#UPDATABLE_VIEW_SYNC">UPDATABLE_VIEW_SYNC</a></span></code>
<div class="block">
表示
<code>SyncProvider</code>实现支持RowSet对象与用于填充对象的SQL
<code>VIEW</code>之间的
<code>RowSet</code>
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#SyncProvider--">SyncProvider</a></span>()</code>
<div class="block">
创建默认的
<code>SyncProvider</code>对象。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getDataSourceLock--">getDataSourceLock</a></span>()</code>
<div class="block">
返回此
<code>SyncProvider</code>实现中当前的数据源锁严重级别。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getProviderGrade--">getProviderGrade</a></span>()</code>
<div class="block">
返回一个常量,表示一个
<code>RowSet</code>对象可以从此
<code>SyncProvider</code>对象预期的
<code>SyncProvider</code>
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getProviderID--">getProviderID</a></span>()</code>
<div class="block">
返回此
<code>SyncProvider</code>对象的唯一标识符。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>abstract <a href="../../../../javax/sql/RowSetReader.html" title="interface in javax.sql">RowSetReader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getRowSetReader--">getRowSetReader</a></span>()</code>
<div class="block">
返回一个
<code>javax.sql.RowSetReader</code>对象,可以用于使用数据填充一个
<code>RowSet</code>对象。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>abstract <a href="../../../../javax/sql/RowSetWriter.html" title="interface in javax.sql">RowSetWriter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getRowSetWriter--">getRowSetWriter</a></span>()</code>
<div class="block">
返回一个
<code>javax.sql.RowSetWriter</code>对象,可用于将一个
<code>RowSet</code>对象的数据写回底层数据源。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getVendor--">getVendor</a></span>()</code>
<div class="block">
返回此
<code>SyncProvider</code>实例的供应商名称
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getVersion--">getVersion</a></span>()</code>
<div class="block">
返回此
<code>SyncProvider</code>实例的发行版本。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#setDataSourceLock-int-">setDataSourceLock</a></span>(int datasource_lock)</code>
<div class="block">
在datasource_lock指示的级别设置底层数据源上的
<i>锁定</i>
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/sql/rowset/spi/SyncProvider.html#supportsUpdatableView--">supportsUpdatableView</a></span>()</code>
<div class="block">
返回此是否
<code>SyncProvider</code>实现可以一个之间执行同步
<code>RowSet</code>对象和SQL
<code>VIEW</code>在从该数据源
<code>RowSet</code>对象得到了它的数据。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../../java/lang/Object.html#toString--">toString</a>, <a href="../../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- --> </a> <h3>字段详细信息</h3> <a name="GRADE_NONE">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>GRADE_NONE</h4> <pre>public static final int GRADE_NONE</pre>
<div class="block">
<span>表示不提供与始发数据源的同步。</span>
<span>一个<code>SyncProvider</code>实现返回此等级将简单的写在更新<code>RowSet</code>对象的基础数据源不检查任何数据的有效性。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.GRADE_NONE">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="GRADE_CHECK_MODIFIED_AT_COMMIT">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>GRADE_CHECK_MODIFIED_AT_COMMIT</h4> <pre>public static final int GRADE_CHECK_MODIFIED_AT_COMMIT</pre>
<div class="block">
<span>表示相对于始发数据源的低级乐观同步等级。</span>
<span>一个<code>SyncProvider</code>实现返回此等级将只检查已更改的行。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="GRADE_CHECK_ALL_AT_COMMIT">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>GRADE_CHECK_ALL_AT_COMMIT</h4> <pre>public static final int GRADE_CHECK_ALL_AT_COMMIT</pre>
<div class="block">
<span>表示相对于始发数据源的高级乐观同步等级。</span>
<span>一个<code>SyncProvider</code>实现返回此等级将检查所有的行,包括未更改的行。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.GRADE_CHECK_ALL_AT_COMMIT">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="GRADE_LOCK_WHEN_MODIFIED">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>GRADE_LOCK_WHEN_MODIFIED</h4> <pre>public static final int GRADE_LOCK_WHEN_MODIFIED</pre>
<div class="block">
<span>表示相对于始发数据源的悲观同步等级。</span>
<span>一个<code>SyncProvider</code>实现返回此等级将在原始数据源锁定该行。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.GRADE_LOCK_WHEN_MODIFIED">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="GRADE_LOCK_WHEN_LOADED">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>GRADE_LOCK_WHEN_LOADED</h4> <pre>public static final int GRADE_LOCK_WHEN_LOADED</pre>
<div class="block">
<span>表示相对于始发数据源最悲观的同步等级。</span>
<span>一个<code>SyncProvider</code>实现返回此等级将锁定受用于填充原来的语句整个视图和/或表<code>RowSet</code>对象。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.GRADE_LOCK_WHEN_LOADED">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="DATASOURCE_NO_LOCK">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DATASOURCE_NO_LOCK</h4> <pre>public static final int DATASOURCE_NO_LOCK</pre>
<div class="block">
<span>表示始发数据源上没有锁。</span>
<span>这是所有<code>SyncProvider</code>实现的默认锁定设置,除非<code>RowSet</code>对象另有指示。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.DATASOURCE_NO_LOCK">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="DATASOURCE_ROW_LOCK">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DATASOURCE_ROW_LOCK</h4> <pre>public static final int DATASOURCE_ROW_LOCK</pre>
<div class="block">
表示锁定被放置在用于填充使用此
<code>SyncProvider</code>对象的
<code>RowSet</code>对象的原始SQL语句所触及的行上。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.DATASOURCE_ROW_LOCK">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="DATASOURCE_TABLE_LOCK">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DATASOURCE_TABLE_LOCK</h4> <pre>public static final int DATASOURCE_TABLE_LOCK</pre>
<div class="block">
表示在用于填充正在使用此
<code>SyncProvider</code>对象的
<code>RowSet</code>对象的原始SQL语句所触及的所有表上都放置了一个锁。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.DATASOURCE_TABLE_LOCK">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="DATASOURCE_DB_LOCK">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DATASOURCE_DB_LOCK</h4> <pre>public static final int DATASOURCE_DB_LOCK</pre>
<div class="block">
表示在作为使用此
<code>SyncProvider</code>对象的
<code>RowSet</code>对象的数据源的整个数据源上放置一个锁。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.DATASOURCE_DB_LOCK">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="UPDATABLE_VIEW_SYNC">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>UPDATABLE_VIEW_SYNC</h4> <pre>public static final int UPDATABLE_VIEW_SYNC</pre>
<div class="block">
表示
<code>SyncProvider</code>实现支持RowSet对象与用于填充对象的SQL
<code>VIEW</code>之间的
<code>RowSet</code>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.UPDATABLE_VIEW_SYNC">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="NONUPDATABLE_VIEW_SYNC">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>NONUPDATABLE_VIEW_SYNC</h4> <pre>public static final int NONUPDATABLE_VIEW_SYNC</pre>
<div class="block">
表明
<code>SyncProvider</code>实现
<b></b>支持之间的同步
<code>RowSet</code>对象和SQL
<code>VIEW</code>用来填充它。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.sql.rowset.spi.SyncProvider.NONUPDATABLE_VIEW_SYNC">Constant Field Values</a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="SyncProvider--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>SyncProvider</h4> <pre>public SyncProvider()</pre>
<div class="block">
创建默认的
<code>SyncProvider</code>对象。
</div> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getProviderID--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getProviderID</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getProviderID()</pre>
<div class="block">
返回此
<code>SyncProvider</code>对象的唯一标识符。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个
<code>String</code>对象具有此
<code>SyncProvider</code>对象的完全限定类名
</dd>
</dl> </li>
</ul> <a name="getRowSetReader--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getRowSetReader</h4> <pre>public abstract <a href="../../../../javax/sql/RowSetReader.html" title="interface in javax.sql">RowSetReader</a> getRowSetReader()</pre>
<div class="block">
返回一个
<code>javax.sql.RowSetReader</code>对象,可以用于使用数据填充
<code>RowSet</code>对象。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个
<code>javax.sql.RowSetReader</code>对象
</dd>
</dl> </li>
</ul> <a name="getRowSetWriter--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getRowSetWriter</h4> <pre>public abstract <a href="../../../../javax/sql/RowSetWriter.html" title="interface in javax.sql">RowSetWriter</a> getRowSetWriter()</pre>
<div class="block">
返回一个
<code>javax.sql.RowSetWriter</code>对象,可用于将
<code>RowSet</code>对象的数据写回基础数据源。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个
<code>javax.sql.RowSetWriter</code>对象
</dd>
</dl> </li>
</ul> <a name="getProviderGrade--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getProviderGrade</h4> <pre>public abstract int getProviderGrade()</pre>
<div class="block">
返回一个常量,表示
<code>RowSet</code>对象可以从此
<code>SyncProvider</code>对象预期的
<code>SyncProvider</code>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个int是以下常量之一SyncProvider.GRADE_NONESyncProvider.GRADE_CHECK_MODIFIED_AT_COMMITSyncProvider.GRADE_CHECK_ALL_AT_COMMITSyncProvider.GRADE_LOCK_WHEN_MODIFIEDSyncProvider.GRADE_LOCK_WHEN_LOADED
</dd>
</dl> </li>
</ul> <a name="setDataSourceLock-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setDataSourceLock</h4> <pre>public abstract void setDataSourceLock(int datasource_lock)
throws <a href="../../../../javax/sql/rowset/spi/SyncProviderException.html" title="class in javax.sql.rowset.spi">SyncProviderException</a></pre>
<div class="block">
<span>在datasource_lock指示的级别设置底层数据源上的<i>锁定</i></span>
<span>这应该使<code>SyncProvider</code>通过增加或减少其为成功同步提供的乐观程度来调整其行为。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>datasource_lock</code> - 以下<code>datasource_lock</code>之一,表示需要数据源锁的严重性级别:</span>
<pre> <span>SyncProvider.DATASOURCE_NO_LOCK,
SyncProvider.DATASOURCE_ROW_LOCK,
SyncProvider.DATASOURCE_TABLE_LOCK,
SyncProvider.DATASOURCE_DB_LOCK,</span> </pre>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../javax/sql/rowset/spi/SyncProviderException.html" title="class in javax.sql.rowset.spi">SyncProviderException</a></code> - 如果设置了不受支持的数据源锁定级别。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../javax/sql/rowset/spi/SyncProvider.html#getDataSourceLock--"><code>getDataSourceLock()</code></a>
</dd>
</dl> </li>
</ul> <a name="getDataSourceLock--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getDataSourceLock</h4> <pre>public abstract int getDataSourceLock()
throws <a href="../../../../javax/sql/rowset/spi/SyncProviderException.html" title="class in javax.sql.rowset.spi">SyncProviderException</a></pre>
<div class="block">
返回此
<code>SyncProvider</code>实现中当前数据源锁的严重级别。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个常量,表示当前的数据源锁定级别在此<code>SyncProvider</code>有效;</span>
<span>以下之一:</span>
<pre> <span>SyncProvider.DATASOURCE_NO_LOCK,
SyncProvider.DATASOURCE_ROW_LOCK,
SyncProvider.DATASOURCE_TABLE_LOCK,
SyncProvider.DATASOURCE_DB_LOCK</span> </pre>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../javax/sql/rowset/spi/SyncProviderException.html" title="class in javax.sql.rowset.spi">SyncProviderException</a></code> - 如果确定数据源锁定级别发生错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../javax/sql/rowset/spi/SyncProvider.html#setDataSourceLock-int-"><code>setDataSourceLock(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="supportsUpdatableView--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>supportsUpdatableView</h4> <pre>public abstract int supportsUpdatableView()</pre>
<div class="block">
返回此是否
<code>SyncProvider</code>实现可以一个之间执行同步
<code>RowSet</code>对象和SQL
<code>VIEW</code>在从该数据源
<code>RowSet</code>对象得到了它的数据。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个<code>int</code>说这个<code>SyncProvider</code>对象是否支持更新SQL <code>VIEW</code> ;</span>
<span>以下之一SyncProvider.UPDATABLE_VIEW_SYNCSyncProvider.NONUPDATABLE_VIEW_SYNC</span>
</dd>
</dl> </li>
</ul> <a name="getVersion--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getVersion</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getVersion()</pre>
<div class="block">
返回此
<code>SyncProvider</code>实例的发行版本。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个
<code>String</code>详细说明的发行版本
<code>SyncProvider</code>实施
</dd>
</dl> </li>
</ul> <a name="getVendor--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>getVendor</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getVendor()</pre>
<div class="block">
返回此
<code>SyncProvider</code>实例的供应商名称
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个
<code>String</code>详细说明了这个
<code>SyncProvider</code>实现的供应商名称
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>