java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

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 - 如果列不是过滤标准的一部分

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策