mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-04 15:52:45 +08:00
191 lines
9.8 KiB
HTML
191 lines
9.8 KiB
HTML
<div class="header">
|
||
<div class="subTitle">
|
||
compact3
|
||
</div>
|
||
<div class="subTitle">
|
||
javax.sql.rowset
|
||
</div>
|
||
<h2 class="title" title="Interface Predicate">Interface Predicate</h2>
|
||
</div><div class="contentContainer">
|
||
<div class="description">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<hr/> <br/> <pre>public interface <span class="typeNameLabel">Predicate</span></pre>
|
||
<div class="block">
|
||
<span>标准接口为所有<code>FilteredRowSet</code>对象提供<code>FilteredRowSet</code>来描述其过滤器。</span>
|
||
<h3> <span>1.0背景</span> </h3>
|
||
<span><code>Predicate</code>接口是应用程序可以实现的标准接口,用于定义要应用于<code>FilteredRowSet</code>对象的过滤器。</span>
|
||
<span>A <code>FilteredRowSet</code>对象消耗此接口的实现,并强制执行方法<code>evaluate</code>定义的<code>evaluate</code> 。</span>
|
||
<span>A <code>FilteredRowSet</code>对象以双向方式实施过滤器约束:它仅输出在过滤器的约束内的行;</span>
|
||
<span>相反,它仅插入,修改或更新在过滤器的约束内的行。</span>
|
||
<h3> <span>2.0实施指引</span> </h3>
|
||
<span>为了提供FilteredRowSet的<code>FilteredRowSet</code> 。</span>
|
||
<span>这个接口必须实现。</span>
|
||
<span>此时,JDBC RowSet实现(JSR-114)不指定任何标准过滤器定义。</span>
|
||
<span>通过指定一个标准装置和机构,用于一系列的过滤器来进行定义,并与两者的参考和供应商实现部署<code>FilteredRowSet</code>接口,这允许的柔性和应用动机实现<code>Predicate</code>出现。</span>
|
||
<p> <span>示例实现将如下所示:</span> </p>
|
||
<pre> <span><code> public class Range implements Predicate { private int[] lo; private int[] hi; private int[] idx; public Range(int[] lo, int[] hi, int[] idx) { this.lo = lo; this.hi = hi; this.idx = idx; } public boolean evaluate(RowSet rs) { // Check the present row determine if it lies // within the filtering criteria. for (int i = 0; i < idx.length; i++) { int value; try { value = (Integer) rs.getObject(idx[i]); } catch (SQLException ex) { Logger.getLogger(Range.class.getName()).log(Level.SEVERE, null, ex); return false; } if (value < lo[i] && value > hi[i]) { // outside of filter constraints return false; } } // Within filter constraints return true; } } </code></span> </pre>
|
||
<p> <span>上面的例子实现了一个简单的范围谓词。</span> <span>请注意,实现应该不是必需的,以提供<code>String</code>和基于整数索引的构造函数来提供使用列标识约定的JDBC RowSet实现应用程序。</span> </p>
|
||
</div> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="summary">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ========== 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>boolean</code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sql/rowset/Predicate.html#evaluate-java.lang.Object-int-">evaluate</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> value, int column)</code>
|
||
<div class="block">
|
||
该方法由
|
||
<code>FilteredRowSet</code>对象调用,以检查该值是否位于使用
|
||
<code>setFilter()</code>方法设置的
|
||
<code>setFilter()</code>条件(或存在多个约束的条件)
|
||
<code>setFilter()</code> 。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor" id="i1">
|
||
<td class="colFirst"><code>boolean</code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sql/rowset/Predicate.html#evaluate-java.lang.Object-java.lang.String-">evaluate</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> value, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> columnName)</code>
|
||
<div class="block">
|
||
该方法由
|
||
<code>FilteredRowSet</code>对象调用,以检查该值是否在使用setFilter方法设置的过滤条件之间。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor" id="i2">
|
||
<td class="colFirst"><code>boolean</code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sql/rowset/Predicate.html#evaluate-javax.sql.RowSet-">evaluate</a></span>(<a href="../../../javax/sql/RowSet.html" title="interface in javax.sql">RowSet</a> rs)</code>
|
||
<div class="block">
|
||
该方法通常称为
|
||
<code>FilteredRowSet</code>对象内部方法(不是公共的),它控制
|
||
<code>RowSet</code>对象的光标从行移动到下一个。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="details">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ============ METHOD DETAIL ========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.detail">
|
||
<!-- --> </a> <h3>方法详细信息</h3> <a name="evaluate-javax.sql.RowSet-">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>evaluate</h4> <pre>boolean evaluate(<a href="../../../javax/sql/RowSet.html" title="interface in javax.sql">RowSet</a> rs)</pre>
|
||
<div class="block">
|
||
<span>此方法通常称为<code>FilteredRowSet</code>对象内部方法(非公开),可控制<code>RowSet</code>对象的光标从行移动到下一个。</span>
|
||
<span>另外,如果这个内部方法将光标移动到已被删除的行上,内部方法将继续使用光标,直到找到有效的行。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>rs</code> -该
|
||
<code>RowSet</code>被评估
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span><code>true</code>如果在过滤器中有更多行;</span>
|
||
<span><code>false</code>否则</span>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="evaluate-java.lang.Object-int-">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>evaluate</h4> <pre>boolean evaluate(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> value,
|
||
int column)
|
||
throws <a href="../../../java/sql/SQLException.html" title="class in java.sql">SQLException</a></pre>
|
||
<div class="block">
|
||
<span>该方法由<code>FilteredRowSet</code>对象调用,以检查该值是否位于使用<code>setFilter()</code>方法设置的<code>setFilter()</code>条件(或存在多个约束的条件) <code>setFilter()</code> 。</span>
|
||
<p> <span><code>FilteredRowSet</code>对象将在内部使用此方法,同时向<code>FilteredRowSet</code>实例插入新行。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>value</code> - 需要检查的
|
||
<code>Object</code>值,是否可以作为此
|
||
<code>FilterRowSet</code>对象的一部分。
|
||
</dd>
|
||
<dd>
|
||
<span><code>column</code> - 一个<code>int</code>对象,必须与此<code>RowSet</code>对象中的列的SQL索引匹配。</span>
|
||
<span>这必须已经传递给<code>Predicate</code>作为<code>Predicate</code>列之一,而初始化<code>Predicate</code></span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span><code>true</code>如果行值位于过滤器内;</span>
|
||
<span><code>false</code>否则</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../java/sql/SQLException.html" title="class in java.sql">SQLException</a></code> - 如果列不是过滤条件的一部分
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="evaluate-java.lang.Object-java.lang.String-">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>evaluate</h4> <pre>boolean evaluate(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> value,
|
||
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> columnName)
|
||
throws <a href="../../../java/sql/SQLException.html" title="class in java.sql">SQLException</a></pre>
|
||
<div class="block">
|
||
<span>该方法由<code>FilteredRowSet</code>对象调用,以检查该值是否在使用setFilter方法设置的过滤条件之间。</span>
|
||
<p> <span><code>FilteredRowSet</code>对象将在内部使用此方法,而将新行<code>FilteredRowSet</code>到<code>FilteredRowSet</code>实例中。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>value</code> - 需要检查的
|
||
<code>Object</code>值,是否可以作为此
|
||
<code>FilterRowSet</code>一部分。
|
||
</dd>
|
||
<dd>
|
||
<span><code>columnName</code> - 一个<code>String</code>对象,必须匹配此<code>RowSet</code>中列的SQL名称,忽略大小写。</span>
|
||
<span>这必须已经传递给<code>Predicate</code>作为<code>Predicate</code>列之一,而初始化<code>Predicate</code></span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span><code>true</code>如果值位于过滤器内;</span>
|
||
<span><code>false</code>否则</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../java/sql/SQLException.html" title="class in java.sql">SQLException</a></code> - 如果列不是过滤条件的一部分
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
</div> |