public interface Predicate
FilteredRowSet对象来描述他们的过滤器提供了框架。
Predicate界面是一个应用程序可以实现定义他们希望申请一一
FilteredRowSet对象筛选标准接口。一个
FilteredRowSet对象消耗这个接口的实现和执行的方法
evaluate实现定义的约束,
FilteredRowSet对象执行过滤约束的双向方式:它的输出仅在过滤器的约束的行;相反,它插入,修改或更新的行,在过滤器约束。
FilteredRowSet供应一个谓词。此接口必须实现。在这个时候,JDBC RowSet实现(jsr-114)不指定任何标准的过滤器的定义。通过指定一个标准的手段和机制,一系列的过滤器被定义和部署与参考和
FilteredRowSet供应商实现的接口,这使得一个灵活的、应用驱动的实现
Predicate出现。
一个示例实现将看起来像这样:
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;
}
}
上面的例子实现了一个简单的范围谓词。注意,这个实现应该但不要求提供JDBC RowSet实现应用程序使用柱识别公约提供String和整数指数为基础的构造函数。
| Modifier and Type | Method and Description |
|---|---|
boolean |
evaluate(Object value, int column)
这种方法被称为一个
FilteredRowSet对象是否存在的价值在于过滤准则之间(或标准,如果多个约束条件的存在)设置使用
setFilter()方法。
|
boolean |
evaluate(Object value, String columnName)
该方法由
FilteredRowSet对象称为检查是否存在的价值在于使用setfilter方法设置过滤标准间。
|
boolean |
evaluate(RowSet rs)
这种方法通常称为
FilteredRowSet对象内部的方法(不公开),控制
RowSet对象的光标移动到下一行。
|
boolean evaluate(RowSet rs)
FilteredRowSet对象内部的方法(不公开),控制
RowSet对象的光标移动到下一行。此外,如果内部的方法移动光标到行已被删除,内部的方法将继续在光标到一个有效的行被发现。
rs -
RowSet进行评估
true如果有过滤器中的多行;
false否则
boolean evaluate(Object value, int column) throws SQLException
FilteredRowSet对象是否存在的价值在于过滤准则之间(或标准,如果多个约束条件的存在)设置使用
setFilter()方法。
的FilteredRowSet对象将使用此方法同时内部插入新的行为FilteredRowSet实例。
value -
Object价值有待检验,是否可以这样
FilterRowSet对象的一部分。
column -
int对象必须符合本
RowSet对象列的SQL索引。这一定是作为滤波初始化
Predicate而列一个通过
Predicate
true如果行值落在滤波器;
false否则
SQLException如果柱不过滤标准的一部分
boolean evaluate(Object value, String columnName) throws SQLException
FilteredRowSet对象称为检查是否存在的价值在于使用setfilter方法设置过滤标准间。
的FilteredRowSet对象将使用此方法同时内部插入新的行为FilteredRowSet实例。
value -
Object价值有待检验,是否可以这样
FilterRowSet部分。
columnName -
String对象必须在这
RowSet列的SQL名称匹配,忽略大小写。这一定是通过
Predicate作为滤波初始化
Predicate而列一
true如果价值体现在过滤;
false否则
SQLException如果柱不过滤标准的一部分
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.