| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
public interface Predicate
为所有 FilteredRowSet 对象提供框架以描述其过滤器的标准接口。
 
Predicate 接口是一个标准接口,应用程序可以实现它来定义希望应用于 FilteredRowSet 对象的过滤器。FilteredRowSet 对象使用此接口的实现并实施在 evaluate 方法的实现中定义的各种约束。FilteredRowSet 对象以双向方式实施过滤器约束:它只输出过滤器的约束中存在的行;反之,也只插入、修改或更新过滤器的约束中存在的行。
 
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对象的指针从一行移动到下一行。 | 
| 方法详细信息 | 
|---|
boolean evaluate(RowSet rs)
FilteredRowSet 对象内部方法(非公共),它控制 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 - 如果列不是过滤标准的一部分| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。