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.