|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.sql.rowset
接口 Predicate
-
public interface Predicate
为所有 FilteredRowSet
对象提供框架以描述其过滤器的标准接口。
1.0 背景
Predicate
接口是一个标准接口,应用程序可以实现它来定义希望应用于 FilteredRowSet
对象的过滤器。FilteredRowSet
对象使用此接口的实现并实施在 evaluate
方法的实现中定义的各种约束。FilteredRowSet
对象以双向方式实施过滤器约束:它只输出过滤器的约束中存在的行;反之,也只插入、修改或更新过滤器的约束中存在的行。
2.0 实现指南
要为FilteredRowSet
提供 predicate,则必须实现此接口。此时,JDBC RowSet Implementations (JSR-114) 不指定任何标准过滤器定义。通过为要使用 FilteredRowSet
接口的参考实现和供应商实现来定义和部署的过滤器范围指定一个标准的方法与机制,此接口允许形成一个应用程序驱动的 Predicate
的灵活实现。
示例实现如下所示:
public class Range implements Predicate {
private Object lo[];
private Object hi[];
private int idx[];
public Range(Object[] lo, Object[] hi, int[] idx) {
this.lo = lo;
this.hi = hi;
this.idx = idx;
}
public boolean evaluate(RowSet rs) {
CachedRowSet crs = (CachedRowSet)rs;
boolean bool1,bool2;
// Check the present row determine if it lies
// within the filtering criteria.
for (int i = 0; i < idx.length; i++) {
if ((rs.getObject(idx[i]) >= lo[i]) &&
(rs.getObject(idx[i]) >= hi[i]) {
bool1 = true; // within filter constraints
} else {
bool2 = true; // outside of filter constraints
}
}
if (bool2) {
return false;
} else {
return true;
}
}
上述示例实现一个简单的范围 predicate。注意,实现应该(但不是必须)提供基于 String
和整数索引的构造方法,供同时使用两种列标识约定的 JDBC RowSet Implementation 应用程序使用。
方法摘要 | |
---|---|
boolean |
evaluate(Object value, int column) FilteredRowSet 对象调用此方法来检查值是否位于使用 setFilter() 方法设置的过滤标准(或标准,如果存在多个约束)中。 |
boolean |
evaluate(Object value, String columnName) FilteredRowSet 对象调用此方法来检查值是否位于使用 setFilter 方法设置的过滤标准中。 |
boolean |
evaluate(RowSet rs) 此方法通常称为 FilteredRowSet 对象内部方法(非公共),它控制 RowSet 对象的指针从一行移动到下一行。 |
方法详细信息 |
---|
evaluate
boolean evaluate(RowSet rs)
-
此方法通常称为
FilteredRowSet
对象内部方法(非公共),它控制RowSet
对象的指针从一行移动到下一行。此外,如果此内部方法将指针移动到一个已删除的行上,则其将继续移动指针,直到找到一个有效行为止。 -
- 返回:
-
如果在过滤器中存在更多行,则返回
true
;否则返回false
evaluate
boolean evaluate(Object value, int column) throws SQLException
-
FilteredRowSet
对象调用此方法来检查值是否位于使用setFilter()
方法设置的过滤标准(或标准,如果存在多个约束)中。向
FilteredRowSet
实例插入新行时,FilteredRowSet
对象将在内部使用此方法。 -
- 参数:
-
value
- 一个Object
值,需要检查其是否可以为FilterRowSet
对象的一部分。 -
column
- 一个int
对象,必须与此RowSet
对象中列的 SQL 索引相匹配。初始化Predicate
时,此值必须已作为要过滤的列之一传递给Predicate
- 返回:
-
如果行值位于过滤器中,则返回
true
;否则返回false
- 抛出:
-
SQLException
- 如果列不是过滤标准的一部分
evaluate
boolean evaluate(Object value, String columnName) throws SQLException
-
FilteredRowSet
对象调用此方法来检查值是否位于使用 setFilter 方法设置的过滤标准中。向
FilteredRowSet
实例插入新行时,FilteredRowSet
对象将在内部使用此方法。 -
- 参数:
-
value
- 一个Object
值,需要检查其是否可以为FilterRowSet
对象的一部分。 -
columnName
- 一个String
对象,必须与此RowSet
中列的 SQL 名称相匹配(忽略大小写)。初始化Predicate
时,此值必须作为要过滤的列之一传递给Predicate
。 - 返回:
-
如果值位于过滤器中,则返回
true
;否则,返回false
。 - 抛出:
-
SQLException
- 如果列不是过滤标准的一部分
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |