JavaTM 2 Platform
Standard Ed. 5.0

javax.sql.rowset
类 BaseRowSet

java.lang.Object
  继承者 javax.sql.rowset.BaseRowSet
所有已实现的接口:
Serializable, Cloneable

public abstract class BaseRowSet
extends Object
implements Serializable, Cloneable

提供一个具有基本功能的 RowSet 对象的抽象类。基本功能包括设置属性和发送事件通知,这是所有 JavaBeansTM 组件都必须实现的。

1.0 概述

BaseRowSet 类为所有 RowSet 实现提供核心功能,所有标准实现可以结合使用此类和一个或多个 RowSet 接口来提供标准特定于供应商的实现。更详细地说,即所有实现必须至少实现一个 RowSet 接口(JdbcRowSetCachedRowSetJoinRowSetFilteredRowSetWebRowSet)。这意味着所有扩展 BaseRowSet 类的实现也必须实现一个 RowSet 接口。

BaseRowSet 类提供以下内容:

2.0 设置属性

所有 rowset 都维护一个属性集,通常使用某种工具来设置这些属性。rowset 具有的属性的数量和种类各不相同,这取决于 RowSet 实现的用途及其获得数据的方式。例如,从 ResultSet 对象获得其数据的 rowset 需要设置那些建立数据库连接所需的属性。如果某个 RowSet 对象使用 DriverManager 设施建立连接,则它需要设置一个标识合适驱动程序的 JDBC URL 属性,还需要设置那些提供用户名和密码的属性。另一方面,如果 rowset 使用 DataSource 对象建立连接(这是首选的方法),则它无需设置 JDBC URL 属性。但是它需要设置用于数据源逻辑名的属性,以及用户名和密码的属性。

注:要使用 DataSource 对象建立连接,该 DataSource 对象必须已经向使用 Java Naming and Directory InterfaceTM (JNDI) API 的命名服务注册。通常由具有系统管理员资格的人员完成此注册。

3.0 设置命令及其参数

rowset 从关系型数据库获取其数据时,它执行一条可生成 ResultSet 对象的命令(查询)。此查询就是为 RowSet 对象的 command 属性所设置的命令。rowset 使用数据填充自身的方式是将数据从 ResultSet 对象读取到其自身。如果查询为要设置的值包含占位符,则使用 BaseRowSet 的设置方法设置这些值。如有必要,所有设置方法都允许将这些值设置为 null

以下代码片断展示了如何设置 CachedRowSetTM 对象 crs 的 command 属性。注意,如果使用某种工具设置属性,则这就是该工具应使用的代码。

    crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" +
                   "WHERE CREDIT_LIMIT > ? AND REGION = ?");
 

在此示例中,CREDIT_LIMITREGION 的值是占位符参数,用一个问号 (?) 指示。第一个问号是占位符参数编号 1,第二个问号是占位符参数编号 2,依此类推。执行查询前必须为占位符参数设置值。要设置这些占位符参数,BaseRowSet 类提供了一组与 PreparedStatement 接口类似的设置方法,用于设置每种数据类型的值。RowSet 对象内部存储该参数值,该对象的 execute 方法在将要执行的命令发送到 DBMS 前,使用这些值内部设置占位符参数的值。

以下代码片断演示了如何设置前一个示例查询中的两个参数。

    crs.setInt(1, 5000);
    crs.setString(2, "West");
 
如果此时调用 execute 方法,则发送到 DBMS 的查询是:
    "SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" +
                   "WHERE CREDIT_LIMIT > 5000 AND REGION = 'West'"
 
注:将 ArrayClobBlobRef 对象设置为命令参数,将这些值分别存储为 SerialArraySerialClobSerialBlobSerialRef 对象。

4.0 在后台处理参数

注:BaseRowSet 类提供两类设置方法:一类设置属性,一类设置占位符参数。此部分中讨论的设置方法是设置占位符参数的那一类。

使用 BaseRowSet 的设置方法设置的占位符参数以对象的形式存储在内部 Hashtable 对象中。基本类型则以其 Object 类型存储。例如,byteByte 对象的形式存储,int 则以 Integer 对象的形式存储。调用方法 execute 时,Hashtable 对象中的值替换命令中的适当占位符参数。 调用方法 getParams 能够以 Object 实例数组的形式返回存储在 Hashtable 对象中的值。此数组中的元素可以是一个简单的 Object 实例,也可以是一个数组(Object 类型)。使用特定的设置方法可确定此数组中某个元素是 Object 还是数组。

大多数设置占位符参数的方法采用两个参数,第一个参数指示要设置的占位符参数,第二个参数给出要设置的值。getIntgetStringgetBooleangetLong 之类的方法属于此类。调用这些方法后,调用方法 getParams 将返回一个数组,其中带有已经设置的值。每个数组元素都是一个 Object 实例,表示已经设置的值。根据传递到设置方法的 int(第一个参数)来确定这些值在数组中的顺序。该数组中的值就是传递给设置方法的值(第二个参数)。换句话说,数组中的第一个元素是为 RowSet 对象的命令中第一个占位符参数所设置的值。第二个元素是为第二个占位符参数所设置的值,依此类推。

一些设置方法除了要设置的值外,还发送驱动程序和 DBMS 信息。如果在使用了此类设置方法后再调用方法 getParams,则数组中的元素本身就是数组,以容纳附加信息。在此类别中,方法 setNull 是一个特例,因为它有一种形式只带有两个参数 (setNull(int parameterIndex, int SqlType))。尽管如此,它仍然需要一个数组来包含要传递给驱动程序和 DBMS 的信息。此数组中的第一个元素是要设置的值,该值为 null;第二个元素是为 sqlType 提供的 int,指示要设置为 null 的 SQL 值的类型。某些 DBMS 需要此信息,因此为了确保应用程序的可移植性,此信息是必需的。当要设置为 null 的值是用户定义的类型时,可使用该方法的另一种形式。这种形式带有三个参数 (setNull(int parameterIndex, int sqlType, String typeName)),同样需要一个数组来包含要传递给驱动程序和 DBMS 的信息。此数组中的前两个参数与第一种 setNull 相同。第三个参数 typeName 给出了用户定义类型的 SQL 名称。与其他设置方法一样,通过 getParams 返回的数组中元素的位置来指示要设置的占位符参数的编号。所以,举例来说,如果提供给 setNull 的参数是 2,则 getParams 返回的数组中的第二个元素将是一个两元素或三元素数组。

某些方法(如 setObjectsetDate)还有带有多于两个参数的形式,这些额外的参数为驱动程序或 DBMS 提供信息。例如,方法 setDatesetTimesetTimestamp 可将 Calendar 对象作为其第三个参数。如果 DBMS 没有存储时区信息,则驱动程序使用 Calendar 对象来构造正在设置的 DateTimeTimestamp 对象。与提供附加信息的其他方法一样,getParams 返回的数组中的元素是一个数组,而不是简单的 Object 实例。

方法 setAsciiStreamsetBinaryStreamsetCharacterStreamsetUnicodeStream(该方法已废弃,所以应用程序应该使用 getCharacterStream)带有三个参数,所以对于这些方法,getParams 返回的数组中的元素也是一个数组。这些设置方法的不同之处在于除了由参数提供的信息外,该数组还包含一个 BaseRowSet 常量,指示正在设置的流类型。

注:由扩展此类的 RowSet 实现内部调用方法 getParams;应用程序的程序员通常不直接调用此方法。

5.0 事件通知

BaseRowSet 类为 rowset 提供了事件通知机制。它包含字段 listeners、添加和移除侦听器的方法,以及将更改通知给侦听器的方法。

侦听器是一个实现了 RowSetListener 接口的对象。如果已经将侦听器添加到 RowSet 对象的侦听器列表,则 RowSet 对象上发生事件时它将获得通知。每个侦听器的 RowSetListener 方法实现定义了获得发生事件的通知时,该对象将执行的操作。

RowSet 对象有三种可能的事件:

  1. 光标移动
  2. 更改了个别行(更新、删除或插入)
  3. 更改了整个 RowSet 对象的内容

用于通知的 BaseRowSet 方法指示已经发生事件的类型。例如,方法 notifyRowChanged 指示某行已经被更新、删除或插入。每种通知方法都创建 RowSetEvent 对象,将该对象提供给侦听器,从而标识发生事件的 RowSet 对象。侦听器如何使用此信息(可能不执行任何操作)取决于它的实现方式。

6.0 默认行为

默认的 BaseRowSet 对象是用很多起始值初始化的。 扩展 BaseRowSet 类的默认 RowSet 实例具有以下特点:

如果需要其他值,则应用程序必须显式设置该属性值。例如,以下代码行将 CachedRowSet 对象 crs 的最大行数设置为 500。

    crs.setMaxRows(500);
 
对于任何违反已定义断言的情况,扩展此 BaseRowSet 类的方法实现必须抛出 SQLException 对象。此外,如果扩展的类重写和重新实现了任何 BaseRowSet 方法,并且遇到了连接性或底层数据源问题,则方法可以为此另外抛出 SQLException 对象。

另请参见:
序列化表格

字段摘要
static int ASCII_STREAM_PARAM
          该常量向 RowSetReaderImpl 对象指示给定的参数是一个 ASCII 流。
protected  InputStream asciiStream
          将由方法 getAsciiStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。
static int BINARY_STREAM_PARAM
          该常量向 RowSetReaderImpl 对象指示给定的参数是一个二进制流。
protected  InputStream binaryStream
          将由方法 getBinaryStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。
protected  Reader charStream
          将由方法 getCharacterStream 返回的 Reader 对象,该方法在 ResultSet 接口中指定。
static int UNICODE_STREAM_PARAM
          该常量向 RowSetReaderImpl 对象指示给定的参数是一个 Unicode 流。
protected  InputStream unicodeStream
          将由方法 getUnicodeStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。
 
构造方法摘要
BaseRowSet()
          构造一个新的 BaseRowSet 对象,使用默认的 Vector 对象初始化其 listeners 字段。
 
方法摘要
 void addRowSetListener(RowSetListener listener)
          只要在此 RowSet 对象上发生事件,就将通知该侦听器。
 void clearParameters()
          清除所有此 RowSet 对象的内部参数表示形式的当前参数值,这些参数值将在执行此 RowSet 对象的命令时在其中设置这些参数。
 String getCommand()
          检索作为此 RowSet 对象的命令的 SQL 查询。
 int getConcurrency()
          返回此 RowSet 对象的并发性。
 String getDataSourceName()
          返回向使用 Java Naming and Directory Interface (JNDI) API 的命名服务所提供的逻辑名,这将检索 javax.sql.DataSource 对象。
 boolean getEscapeProcessing()
          确定是否为此 RowSet 对象启用了转义处理。
 int getFetchDirection()
          检索此 RowSet 对象的当前有关获取方向的设置。
 int getFetchSize()
          返回此 RowSet 对象的获取大小。
 int getMaxFieldSize()
          检索可用于此 RowSet 对象列值的最大字节数。
 int getMaxRows()
          检索此 RowSet 对象可以包含的最大行数。
 Object[] getParams()
          检索一个数组,其中包含为此 RowSet 对象命令设置的参数值(包括 Object 和基本类型),如果尚未设置任何参数,则抛出 SQLException 对象。
 String getPassword()
          返回用于创建此 RowSet 对象的数据库连接的密码。
 int getQueryTimeout()
          检索驱动程序等待查询执行的最大秒数。
 boolean getShowDeleted()
          检索一个 boolean 值,该值指示标记为删除的行是否会出现在当前行集合中。
 int getTransactionIsolation()
          返回此 RowSet 对象连接的事务隔离属性。
 int getType()
          返回此 RowSet 对象的类型。
 Map<String,Class<?>> getTypeMap()
          检索与此 RowSet 对象的 Connection 对象关联的类型映射表。
 String getUrl()
          检索此 RowSet 对象的 javax.sql.Reader 对象用来建立与关系数据库连接(使用启用 JDBC 技术的驱动程序)的 JDBC URL。
 String getUsername()
          返回用于创建数据库连接的用户名。
protected  void initParams()
          执行必需的内部配置和初始化,从而允许所有 JDBC RowSet 实现开始使用 BaseRowSet 实例提供的标准设施。
 boolean isReadOnly()
          返回一个指示此 RowSet 对象是否为只读的 boolean 值。
protected  void notifyCursorMoved()
          通知向此 RowSet 对象注册的所有侦听器其光标已移动。
protected  void notifyRowChanged()
          通知向此 RowSet 对象注册的所有侦听器其行已更改。
protected  void notifyRowSetChanged()
          通知向此 RowSet 对象注册的所有侦听器其整个内容已更改。
 void removeRowSetListener(RowSetListener listener)
          从此 RowSet 对象的侦听器列表中移除指定的对象。
 void setArray(int parameterIndex, Array array)
          将指定参数设置为 Java 编程语言中的 Array 对象。
 void setAsciiStream(int parameterIndex, InputStream x, int length)
          将指定参数设置为给定的 java.io.InputStream 对象,该对象将具有指定的字节数。
 void setBigDecimal(int parameterIndex, BigDecimal x)
          将指定参数设置为给定的 java.lang.BigDecimal 值。
 void setBinaryStream(int parameterIndex, InputStream x, int length)
          将指定参数设置为给定的 java.io.InputStream 对象,该对象具有指定的字节数。
 void setBlob(int parameterIndex, Blob x)
          将指定参数设置为 Java 编程语言中的给定 Blob 对象。
 void setBoolean(int parameterIndex, boolean x)
          将指定参数设置为 Java 编程语言中的给定 boolean 值。
 void setByte(int parameterIndex, byte x)
          将指定参数设置为 Java 编程语言中的给定 byte 值。
 void setBytes(int parameterIndex, byte[] x)
          将指定参数设置为给定的 byte 数组。
 void setCharacterStream(int parameterIndex, Reader reader, int length)
          将指定参数设置为给定的 java.io.Reader 对象,该对象具有指定的字符数。
 void setClob(int parameterIndex, Clob x)
          将指定参数设置为 Java 编程语言中的给定 Clob 对象。
 void setCommand(String cmd)
          将此 RowSet 对象的 command 属性设置为给定的 String 对象,并清除为前一个命令设置的参数(如果有)。
 void setConcurrency(int concurrency)
          将此 RowSet 对象的并发性设置为指定的并发性。
 void setDataSourceName(String name)
          将此 RowSet 对象的 DataSource 名称属性设置为给定的逻辑名,并将此 RowSet 对象的 Url 属性设置为 null
 void setDate(int parameterIndex, Date x)
          将指定参数设置为给定的 java.sql.Date 值。
 void setDate(int parameterIndex, Date x, Calendar cal)
          将指定参数设置为给定的 java.sql.Date 对象。
 void setDouble(int parameterIndex, double x)
          将指定参数设置为 Java 编程语言中的给定 double 值。
 void setEscapeProcessing(boolean enable)
          设置为给定的 boolean 值,指示将 SQL 语句发送到数据库之前,驱动程序是否扫描转义语法并进行转义替换。
 void setFetchDirection(int direction)
          为驱动程序提供一个性能提示,该提示指示处理此 RowSet 对象中各行时使用的方向。
 void setFetchSize(int rows)
          将此 RowSet 对象的获取大小设置为给定的行数。
 void setFloat(int parameterIndex, float x)
          将指定参数设置为 Java 编程语言中的给定 float 值。
 void setInt(int parameterIndex, int x)
          将指定参数设置为 Java 编程语言中的 int 值。
 void setLong(int parameterIndex, long x)
          将指定参数设置为 Java 编程语言中的给定 long 值。
 void setMaxFieldSize(int max)
          将可用于此 RowSet 对象列值的最大字节数设置为给定数。
 void setMaxRows(int max)
          将此 RowSet 对象可以包含的最大行数设置为给定数。
 void setNull(int parameterIndex, int sqlType)
          将指定参数设置为 SQL NULL
 void setNull(int parameterIndex, int sqlType, String typeName)
          将指定参数设置为 SQL NULL
 void setObject(int parameterIndex, Object x)
          将指定参数设置为 Java 编程语言中的 Object
 void setObject(int parameterIndex, Object x, int targetSqlType)
          使用给定 Object 值设置指定参数的值。
 void setObject(int parameterIndex, Object x, int targetSqlType, int scale)
          将指定参数设置为 Java 编程语言中的 Object
 void setPassword(String pass)
          将用于创建此 RowSet 对象的数据库连接的密码设置为给定的 String 对象。
 void setQueryTimeout(int seconds)
          将驱动程序等待查询执行的最大秒数设置为给定的数。
 void setReadOnly(boolean value)
          将此 RowSet 对象的 readOnly 属性设置为给定的 boolean 值。
 void setRef(int parameterIndex, Ref ref)
          将指定参数设置为 Java 编程语言中的给定 Ref 对象。
 void setShort(int parameterIndex, short x)
          将指定参数设置为 Java 编程语言中的给定 short 值。
 void setShowDeleted(boolean value)
          将属性 showDeleted 设置为给定的 boolean 值,该值指示标记为删除的行是否会出现在当前行集合中。
 void setString(int parameterIndex, String x)
          将指定参数设置为给定的 String 值。
 void setTime(int parameterIndex, Time x)
          将指定参数设置为给定的 java.sql.Time 值。
 void setTime(int parameterIndex, Time x, Calendar cal)
          将指定参数设置为给定的 java.sql.Time 对象。
 void setTimestamp(int parameterIndex, Timestamp x)
          将指定参数设置为给定的 java.sql.Timestamp 值。
 void setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
          将指定参数设置为给定的 java.sql.Timestamp 对象。
 void setTransactionIsolation(int level)
          将此 JDBC RowSet 对象的事务隔离属性设置为给定的常量。
 void setType(int type)
          将此 RowSet 对象的类型设置为指定类型。
 void setTypeMap(Map<String,Class<?>> map)
          将给定的 java.util.Map 对象安装为与此 RowSet 对象的 Connection 对象关联的类型映射表。
 void setUnicodeStream(int parameterIndex, InputStream x, int length)
          已过时。 应该使用 getCharacterStream 替代它
 void setUrl(String url)
          将此 RowSet 对象的 Url 属性设置为给定的 String 对象,并将 dataSource 名称属性设置为 null
 void setUsername(String name)
          将此 RowSet 对象的 username 属性设置为给定的用户名。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

UNICODE_STREAM_PARAM

public static final int UNICODE_STREAM_PARAM
该常量向 RowSetReaderImpl 对象指示给定的参数是一个 Unicode 流。此 RowSetReaderImpl 对象作为 SyncProvider 抽象类的扩展来提供,该抽象类在 SyncFactory 静态工厂 SPI 机制中定义。

另请参见:
常量字段值

BINARY_STREAM_PARAM

public static final int BINARY_STREAM_PARAM
该常量向 RowSetReaderImpl 对象指示给定的参数是一个二进制流。此 RowSetReaderImpl 对象作为 SyncProvider 抽象类的扩展来提供,该抽象类在 SyncFactory 静态工厂 SPI 机制中定义。

另请参见:
常量字段值

ASCII_STREAM_PARAM

public static final int ASCII_STREAM_PARAM
该常量向 RowSetReaderImpl 对象指示给定的参数是一个 ASCII 流。此 RowSetReaderImpl 对象作为 SyncProvider 抽象类的扩展来提供,该抽象类在 SyncFactory 静态工厂 SPI 机制中定义。

另请参见:
常量字段值

binaryStream

protected InputStream binaryStream
将由方法 getBinaryStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。


unicodeStream

protected InputStream unicodeStream
将由方法 getUnicodeStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。


asciiStream

protected InputStream asciiStream
将由方法 getAsciiStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。


charStream

protected Reader charStream
将由方法 getCharacterStream 返回的 Reader 对象,该方法在 ResultSet 接口中指定。

构造方法详细信息

BaseRowSet

public BaseRowSet()
构造一个新的 BaseRowSet 对象,使用默认的 Vector 对象初始化其 listeners 字段。初始化时使用的其他默认值列在此类类注释的 6.0 部分。

方法详细信息

initParams

protected void initParams()
执行必需的内部配置和初始化,从而允许所有 JDBC RowSet 实现开始使用 BaseRowSet 实例提供的标准设施。应该在实例化 RowSet 对象后再调用此方法,以正确地初始化所有参数。此方法永远不应该由应用程序调用,而应从具有扩展此类的 RowSet 实现的对象中调用。


addRowSetListener

public void addRowSetListener(RowSetListener listener)
只要在此 RowSet 对象上发生事件,就将通知该侦听器。

为了准确地反映 RowSet 对象的当前状态,侦听器可能是一个需要更新的表或图形。

:如果 RowSetListener 对象为 null,则此方法正常丢弃该 null 值,不向侦听器集添加 null 引用。

:如果已经设置了侦听器,则新的 RowSetListerner 实例将添加到已注册接收此 RowSet 事件通知的侦听器集合。

参数:
listener - 一个对象,它已经实现了 javax.sql.RowSetListener 接口并且希望在此 RowSet 对象上发生任何事件时得到通知;可以为 null。
另请参见:
removeRowSetListener(javax.sql.RowSetListener)

removeRowSetListener

public void removeRowSetListener(RowSetListener listener)
从此 RowSet 对象的侦听器列表中移除指定的对象。如果给定的参数不是已注册侦听器,则此方法不执行任何操作。 :如果 RowSetListener 对象为 null,则此方法正常丢弃该 null 值。

参数:
listener - 位于此 RowSet 对象的侦听器列表中的 RowSetListener 对象
另请参见:
addRowSetListener(javax.sql.RowSetListener)

notifyCursorMoved

protected void notifyCursorMoved()
                          throws SQLException
通知向此 RowSet 对象注册的所有侦听器其光标已移动。

当应用程序调用某个方法移动光标时,该方法移动光标,然后内部调用此方法。应用程序永远不应该直接调用此方法。

抛出:
SQLException - 如果扩展 BaseRowSet 抽象类的类未实现 RowSet 接口或其某个子接口。

notifyRowChanged

protected void notifyRowChanged()
                         throws SQLException
通知向此 RowSet 对象注册的所有侦听器其行已更改。

当应用程序调用更改某行的方法时,如 CachedRowSet 方法 insertRowupdateRowdeleteRow,该方法内部调用 notifyRowChanged。应用程序永远不应该直接调用此方法。

抛出:
SQLException - 如果扩展 BaseRowSet 抽象类的类未实现 RowSet 接口或其某个子接口。

notifyRowSetChanged

protected void notifyRowSetChanged()
                            throws SQLException
通知向此 RowSet 对象注册的所有侦听器其整个内容已更改。

当应用程序调用更改 RowSet 对象整个内容的方法时,如 CachedRowSet 方法 executepopulaterestoreOriginalrelease,该方法内部调用(直接或间接)notifyRowSetChanged。应用程序永远不应该直接调用此方法。

抛出:
SQLException - 如果扩展 BaseRowSet 抽象类的类未实现 RowSet 接口或其某个子接口。

getCommand

public String getCommand()
检索作为此 RowSet 对象的命令的 SQL 查询。command 属性包含为填充此 RowSet 对象所执行的查询。

此方法返回的 SQL 查询由 RowSet 方法使用,如 executepopulate,扩展了 BaseRowSet 抽象类和实现了一个或多个标准 JSR-114 RowSet 接口的任何类都可实现这些方法。

RowSet 对象的 reader 使用该命令获得 ResultSet 对象。然后 reader 从 ResultSet 对象读取数据并使用该数据填充此 RowSet 对象。

command 属性的默认值为 null

返回:
String,它是此 RowSet 对象的 command 属性的值;可以为 null
另请参见:
setCommand(java.lang.String)

setCommand

public void setCommand(String cmd)
                throws SQLException
将此 RowSet 对象的 command 属性设置为给定的 String 对象,并清除为前一个命令设置的参数(如果有)。

如果 RowSet 对象从一个不支持 command 属性的数据源获得数据(如电子表格或其他表格文件),则不需要 command 属性。因此,此属性是可选的,可以为 null

参数:
cmd - 包含 SQL 查询的 String 对象,该查询将被设置为此 RowSet 对象的 command 属性;可以为 null 但不能是空字符串
抛出:
SQLException - 如果提供空字符串作为 command 值
另请参见:
getCommand()

getUrl

public String getUrl()
              throws SQLException
检索此 RowSet 对象的 javax.sql.Reader 对象用来建立与关系数据库连接(使用启用 JDBC 技术的驱动程序)的 JDBC URL。

如果底层数据源是非 SQL 数据源(如电子表格或 XML 数据源),则该 Url 属性为 null

返回:
包含 JDBC URL 的 String 对象,该 URL 用来为此 RowSet 对象建立连接;如果未设置,则为 null(默认值)
抛出:
SQLException - 如果检索 URL 值时发生错误
另请参见:
setUrl(java.lang.String)

setUrl

public void setUrl(String url)
            throws SQLException
将此 RowSet 对象的 Url 属性设置为给定的 String 对象,并将 dataSource 名称属性设置为 null。Url 属性是使用启用 JDBC 技术的驱动程序(“JDBC 驱动程序”)和 DriverManager 建立连接时所使用的 JDBC URL。在驱动程序文档中可以找到特定驱动程序要使用的恰当 JDBC URL。虽然对如何形成 JDBC URL 有很多指导方针,但驱动程序供应商可以指定除长度为 0(空字符串)以外的任何 String 对象。

如果使用 DataSource 对象而不是 DriverManager 建立连接,则设置 Url 属性是可选的。驱动程序将使用最近一次指定的 URL 属性或 dataSourceName 属性来创建连接。如果应用程序使用 JDBC URL,则必须在使用 RowSet 对象连接到数据库之前加载可接受 JDBC URL 的 JDBC 驱动程序。为了读取或写入数据,RowSet 对象将内部使用该 URL 创建数据库连接。

参数:
url - 一个 String 对象,包含为此 RowSet 对象建立到数据库的连接时所使用的 JDBC URL;可以为 null 但不得为空字符串
抛出:
SQLException - 如果设置 Url 属性时发生错误,或者提供的参数是长度为 0 的字符串(空字符串)
另请参见:
getUrl()

getDataSourceName

public String getDataSourceName()
返回向使用 Java Naming and Directory Interface (JNDI) API 的命名服务所提供的逻辑名,这将检索 javax.sql.DataSource 对象。可使用此 DataSource 对象建立到它所表示的数据源的连接。

用户应该设置 url 或数据源名称属性。驱动程序将使用最近一次设置的属性来建立连接。

返回:
一个 String 对象,标识建立连接所使用的 DataSource 对象;如果尚未设置逻辑名,则返回 null
另请参见:
setDataSourceName(java.lang.String)

setDataSourceName

public void setDataSourceName(String name)
                       throws SQLException
将此 RowSet 对象的 DataSource 名称属性设置为给定的逻辑名,并将此 RowSet 对象的 Url 属性设置为 null。该名称必须已绑定到 JNDI 命名服务中的 DataSource 对象,这样应用程序才可以使用该名称执行查找,以检索绑定到该名称的 DataSource 对象。然后可使用此 DataSource 对象建立到它所表示的数据源的连接。

用户应该设置 Url 属性或 dataSourceName 属性。如果同时设置了两个属性,则驱动程序将使用最近一次设置的属性。

参数:
name - 一个 String 对象,它所带的名称可提供给基于 JNDI 技术的命名服务,以检索可用于建立连接的 DataSource 对象;可以为 null 但不得为空字符串
抛出:
SQLException - 如果提供空字符串作为 DataSource 名称
另请参见:
zhang

getUsername

public String getUsername()
返回用于创建数据库连接的用户名。因为 username 属性不是序列化的,所以在调用方法 execute 之前在运行时设置该属性。

返回:
String 对象,包含为创建连接而提供给数据源的用户名;如果未设置,则为 null(默认值)
另请参见:
setUsername(java.lang.String)

setUsername

public void setUsername(String name)
将此 RowSet 对象的 username 属性设置为给定的用户名。因为 username 属性不是序列化的,所以在调用方法 execute 之前在运行时设置该属性。

参数:
name - String 对象,包含为创建连接而提供给数据源的用户名。可以为 null。
另请参见:
getUsername()

getPassword

public String getPassword()
返回用于创建此 RowSet 对象的数据库连接的密码。因为 password 属性不是序列化的,所以在调用方法 execute 之前在运行时设置该属性。默认值为 null

返回:
String 对象,表示为创建连接而必须提供给数据库的密码
另请参见:
setPassword(java.lang.String)

setPassword

public void setPassword(String pass)
将用于创建此 RowSet 对象的数据库连接的密码设置为给定的 String 对象。因为 password 属性不是序列化的,所以在调用方法 execute 之前在运行时设置该属性。

参数:
pass - String 对象,表示为创建连接而提供给数据库的密码。可以为 null。
另请参见:
getPassword()

setType

public void setType(int type)
             throws SQLException
将此 RowSet 对象的类型设置为指定类型。默认类型是 ResultSet.TYPE_SCROLL_INSENSITIVE

参数:
type - 以下常量之一:ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE
抛出:
SQLException - 如果提供的参数不是以下常量之一:ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE
另请参见:
getConcurrency(), getType()

getType

public int getType()
            throws SQLException
返回此 RowSet 对象的类型。类型是由创建 RowSet 对象的语句最初确定的。RowSet 对象可在任何时间调用方法 setType 来更改其类型。默认值是 TYPE_SCROLL_INSENSITIVE

返回:
此 JDBC RowSet 对象的类型,必须是以下值之一:ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE
抛出:
SQLException - 如果获得此 RowSet 对象的类型时发生错误
另请参见:
setType(int)

setConcurrency

public void setConcurrency(int concurrency)
                    throws SQLException
将此 RowSet 对象的并发性设置为指定的并发性。所有 RowSet 对象(连接或非连接的)的默认并发性是 ResultSet.CONCUR_UPDATABLE,但是可在任何时间调用此方法来更改该并发性。

参数:
concurrency - 以下常量之一:ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE
抛出:
SQLException - 如果提供的参数不是以下常量之一:ResultSet.CONCUR_UPDATABLEResultSet.CONCUR_READ_ONLY
另请参见:
getConcurrency(), isReadOnly()

isReadOnly

public boolean isReadOnly()
返回一个指示此 RowSet 对象是否为只读的 boolean 值。任何试图更新只读 RowSet 对象将导致抛出 SQLException。默认情况下,如果可以进行更新,则 rowset 是可更新的。

返回:
如果不能更新此 RowSet 对象,则返回 true;否则返回 false
另请参见:
setConcurrency(int), setReadOnly(boolean)

setReadOnly

public void setReadOnly(boolean value)
将此 RowSet 对象的 readOnly 属性设置为给定的 boolean 值。

参数:
value - 为 true 指示此 RowSet 对象是只读的;为 false 指示该对象是可更新的

getTransactionIsolation

public int getTransactionIsolation()
返回此 RowSet 对象连接的事务隔离属性。此属性表示在事务中请求使用的事务隔离级别。

对于某些 RowSet 实现,如在非连接环境中操作的 CachedRowSetSyncProvider 对象提供了互补的锁定和数据完整性选项。以下描述的选项仅与连接的 RowSet 对象(JdbcRowSet 对象)有关。

返回:
以下常量之一:Connection.TRANSACTION_NONEConnection.TRANSACTION_READ_UNCOMMITTEDConnection.TRANSACTION_READ_COMMITTEDConnection.TRANSACTION_REPEATABLE_READConnection.TRANSACTION_SERIALIZABLE
另请参见:
SyncFactory, SyncProvider, setTransactionIsolation(int)

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws SQLException
将此 JDBC RowSet 对象的事务隔离属性设置为给定的常量。如果可以,DBMS 将为事务使用此事务隔离级别。

对于某些 RowSet 实现,如在非连接环境中操作的 CachedRowSet,所用的 SyncProvider 对象提供了互补的锁定和数据完整性选项。以下描述的选项仅与连接的 RowSet 对象(JdbcRowSet 对象)有关。

参数:
level - 以下常量之一,按升序列出:Connection.TRANSACTION_NONEConnection.TRANSACTION_READ_UNCOMMITTEDConnection.TRANSACTION_READ_COMMITTEDConnection.TRANSACTION_REPEATABLE_READConnection.TRANSACTION_SERIALIZABLE
抛出:
SQLException - 如果给定的参数不是 Connection 常量之一
另请参见:
SyncFactory, SyncProvider, getTransactionIsolation()

getTypeMap

public Map<String,Class<?>> getTypeMap()
检索与此 RowSet 对象的 Connection 对象关联的类型映射表。

支持 JDBC 3.0 API 的驱动程序将创建具有关联类型映射表的 Connection 对象。此类型映射表(初始为空)可以包含一个或多个完全限定的 SQL 名,以及指示命名 SQL 值所要映射的类的 Class 对象。当没有其他类型映射取代自定义类型映射时,在连接的类型映射表中指定的类型映射将用做自定义类型映射。

如果向可以执行自定义映射的方法显式提供类型映射表,则该类型映射表将取代连接的类型映射表。

返回:
java.util.Map 对象,它是此 RowSet 对象连接的类型映射表

setTypeMap

public void setTypeMap(Map<String,Class<?>> map)
将给定的 java.util.Map 对象安装为与此 RowSet 对象的 Connection 对象关联的类型映射表。如果为方法显式提供了不同的类型映射表,则使用提供的类型映射表,否则将使用此类型映射表中所指示的自定义映射。

参数:
map - 一个 java.util.Map 对象,包含用户定义类型 (UDT) 的 SQL 类型名称到 Java 编程语言中类的映射。Map 对象中每一项都由 UDT 的完全限定 SQL 名称和用于该 UDT 的 SQLData 实现的 Class 对象组成。可以为 null

getMaxFieldSize

public int getMaxFieldSize()
                    throws SQLException
检索可用于此 RowSet 对象列值的最大字节数。此限制仅适用于包含以下类型值的列:BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR。如果超过了该限制,则正常丢弃多出的数据。

返回:
指示当前最大列大小限制的 int 值;0 表示没有限制
抛出:
SQLException - 如果确定列大小的最大限制时内部发生错误

setMaxFieldSize

public void setMaxFieldSize(int max)
                     throws SQLException
将可用于此 RowSet 对象列值的最大字节数设置为给定数。此限制仅适用于包含以下类型值的列:BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR。如果超过了该限制,则正常丢弃多出的数据。为了获得最大的可移植性,建议使用大于 256 的值。

参数:
max - 指示新的最大列大小限制的 int 值;0 表示没有限制
抛出:
SQLException - 如果 (1) 设置最大列大小限制时内部发生错误 (2) 设置的大小小于 0

getMaxRows

public int getMaxRows()
               throws SQLException
检索此 RowSet 对象可以包含的最大行数。如果超过了此限制,则正常撤消多出的行。

返回:
指示当前最大行数的 int 值;0 表示没有限制
抛出:
SQLException - 如果确定 Rowset 对象可以包含的最大行数限制时内部发生错误

setMaxRows

public void setMaxRows(int max)
                throws SQLException
将此 RowSet 对象可以包含的最大行数设置为给定数。如果超过了此限制,则正常撤消多出的行。

参数:
max - 指示当前最大行数的 int 值;0 表示没有限制
抛出:
SQLException - 如果设置 JDBC RowSet 对象可以包含的最大行数限制时内部发生错误;如果 max 小于 0;如果 max 小于 RowSetfetchSize

setEscapeProcessing

public void setEscapeProcessing(boolean enable)
                         throws SQLException
设置为给定的 boolean 值,指示将 SQL 语句发送到数据库之前,驱动程序是否扫描转义语法并进行转义替换。默认值是驱动程序执行转义处理。

注:因为 PreparedStatement 对象通常在调用此方法之前解析,所以对准备的语句禁用转义处理无效。

参数:
enable - 为 true 表示启用转义处理;为 false 表示禁用该处理
抛出:
SQLException - 如果设置底层启用 JDBC 技术的驱动程序处理转义语法时发生错误

getQueryTimeout

public int getQueryTimeout()
                    throws SQLException
检索驱动程序等待查询执行的最大秒数。如果超过该限制,则抛出 SQLException

返回:
当前的查询超时限制,以秒为单位;0 表示没有限制
抛出:
SQLException - 如果确定查询超时值时发生错误

setQueryTimeout

public void setQueryTimeout(int seconds)
                     throws SQLException
将驱动程序等待查询执行的最大秒数设置为给定的数。如果超过该限制,则抛出 SQLException

参数:
seconds - 新的查询超时限制,以秒为单位;0 表示没有限制;不得小于 0
抛出:
SQLException - 如果设置查询超时值时发生错误,如果查询超时值小于 0

getShowDeleted

public boolean getShowDeleted()
                       throws SQLException
检索一个 boolean 值,该值指示标记为删除的行是否会出现在当前行集合中。默认值为 false

注:允许保持已删除行可见会使某些方法的行为变得复杂。但是,多数 RowSet 对象的用户可以简单地忽略此额外细节,因为只有极其特殊的应用程序才会利用此功能。

返回:
如果已删除行是可见的,则返回 true;否则返回 false
抛出:
SQLException - 如果确定已删除行是否可见时发生错误
另请参见:
setShowDeleted(boolean)

setShowDeleted

public void setShowDeleted(boolean value)
                    throws SQLException
将属性 showDeleted 设置为给定的 boolean 值,该值指示标记为删除的行是否会出现在当前行集合中。

参数:
value - 如果已删除行是可见的,则为 true;否则为 false
抛出:
SQLException - 如果设置已删除行是否可见时发生错误
另请参见:
getShowDeleted()

getEscapeProcessing

public boolean getEscapeProcessing()
                            throws SQLException
确定是否为此 RowSet 对象启用了转义处理。

返回:
如果开启了转义处理,则返回 true;否则返回 false
抛出:
SQLException - 如果在确定是否启用转义处理时发生错误,或者尚未启用内部转义处理触发器

setFetchDirection

public void setFetchDirection(int direction)
                       throws SQLException
为驱动程序提供一个性能提示,该提示指示处理此 RowSet 对象中各行时使用的方向。驱动程序可以忽略此提示。

RowSet 对象继承它从中获取数据的 ResultSet 对象的默认属性。该 ResultSet 对象的默认获取方向由创建它的 Statement 对象设置。

仅在 RowSet 对象已使用 JDBC 驱动程序连接到数据库时,此方法才适用。

RowSet 对象可在任何时间使用此方法来更改其有关获取方向的设置。

参数:
direction - ResultSet.FETCH_FORWARDResultSet.FETCH_REVERSEResultSet.FETCH_UNKNOWN 之一
抛出:
SQLException - 如果 (1) RowSet 类型是 TYPE_FORWARD_ONLY 并且给定的获取方向不是 FETCH_FORWARD (2) 给定的获取方向不是以下值之一:ResultSet.FETCH_FORWARD、ResultSet.FETCH_REVERSE 或 ResultSet.FETCH_UNKNOWN
另请参见:
getFetchDirection()

getFetchDirection

public int getFetchDirection()
                      throws SQLException
检索此 RowSet 对象的当前有关获取方向的设置。默认类型是 ResultSet.FETCH_FORWARD

返回:
ResultSet.FETCH_FORWARDResultSet.FETCH_REVERSEResultSet.FETCH_UNKNOWN 之一
抛出:
SQLException - 如果确定获取行的当前获取方向时发生错误
另请参见:
setFetchDirection(int)

setFetchSize

public void setFetchSize(int rows)
                  throws SQLException
将此 RowSet 对象的获取大小设置为给定的行数。获取大小为启用 JDBC 技术的驱动程序(“JDBC 驱动程序”)提供了一个提示,该提示指示此 RowSet 对象还需要行时应该从数据库获取的行数。如果指定的获取大小为 0,则驱动程序忽略该值,随意对获取大小作出它自己的最佳猜测。

RowSet 对象继承它从中获取数据的 ResultSet 对象的默认属性。该 ResultSet 对象的默认获取大小由创建它的 Statement 对象设置。

仅在 RowSet 对象已使用 JDBC 驱动程序连接到数据库时,此方法才适用。对于连接的 RowSet 实现(如 JdbcRowSet),此方法对底层 JDBC 驱动程序直接并立即产生影响。

RowSet 对象可在任何时间使用此方法来更改其有关获取大小的设置。

对于某些 RowSet 实现,如在非连接环境中操作的 CachedRowSet,正在使用的 SyncProvider 对象可以利用获取大小来轮询数据源、检索不超过该获取大小的多个行,以及检索可以形成原始查询所返回的实际行子集的多个行。这种实现的变化由非连接 RowSet 对象所使用的具体 SyncProvider 对象确定。

参数:
rows - 要获取的行数;0 让驱动程序决定最佳的获取大小;不得小于 0 或大于此 RowSet 对象允许的最大行数(调用方法 getMaxRows() 返回的数目)
抛出:
SQLException - 如果指定的获取大小小于 0 或大于最大行数限制
另请参见:
getFetchSize()

getFetchSize

public int getFetchSize()
                 throws SQLException
返回此 RowSet 对象的获取大小。默认值为 0。

返回:
当此 RowSet 对象还需要从数据库获取行时,建议作为获取大小的行数
抛出:
SQLException - 如果确定当前获取大小中的行数时发生错误
另请参见:
setFetchSize(int)

getConcurrency

public int getConcurrency()
                   throws SQLException
返回此 RowSet 对象的并发性。对于连接和非连接 RowSet 对象而言,默认值都是 CONCUR_UPDATABLE

应用程序可以在任何时间调用方法 setConcurrency 来更改 RowSet 对象的并发性。

返回:
RowSet 对象的并发性类型,必须是以下值之一:ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE
抛出:
SQLException - 如果获得此 RowSet 对象的并发性时发生错误
另请参见:
setConcurrency(int), isReadOnly()

setNull

public void setNull(int parameterIndex,
                    int sqlType)
             throws SQLException
将指定参数设置为 SQL NULL。注意,必须使用 java.sql.Types 中定义的某个类型代码指定参数的 SQL 类型。在第二个参数中指定此 SQL 类型。

注意,第二个参数告知 DBMS 值的数据类型被设置为 NULL。某些 DBMS 需要此信息,所以为了使代码更容易移植,此信息是必需的。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setNull 后再调用方法 getParams 将返回一个 Object 数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素为 null。第二个元素是为 sqlType 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果将第二个占位符参数设置为 null,则包含该值的数组是 getParams 返回的数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
sqlType - 一个 int 值,是类 Types 中定义的 SQL 类型代码之一。如果提供了非标准的 sqlType,则此方法不会抛出 SQLException。这隐含着对非标准 SQL 类型的支持。
抛出:
SQLException - 如果发生数据库访问错误或者给定的参数索引超出范围
另请参见:
getParams()

setNull

public void setNull(int parameterIndex,
                    int sqlType,
                    String typeName)
             throws SQLException
将指定参数设置为 SQL NULL。 虽然这种形式的 setNull 方法用于用户定义的参数和 REF 参数,但是也可使用此方法设置任意 JDBC 类型的 null 参数。以下是用户定义的类型:STRUCTDISTINCTJAVA_OBJECT 和指定数组类型。

注:为了便于移植,在指定 NULL 用户定义参数或 REF 参数时,应用程序必须提供 SQL 类型代码和完全限定的 SQL 类型名称。在用户定义类型的情况下,名称是参数本身的类型名称。对于 REF 参数,名称是所引用类型的类型名称。如果启用 JDBC 技术的驱动程序不需要类型代码和类型名称信息,那么它可以忽略这些信息。

如果该参数没有用户定义的类型或 REF 类型,则忽略给定的 typeName 参数。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setNull 后再调用方法 getParams 将返回一个 Object 数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素为 null。第二个元素是为 sqlType 设置的值,第三个元素是为 typeName 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果将第二个占位符参数设置为 null,则包含该值的数组是 getParams 返回的数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
sqlType - java.sql.Types 中的值
typeName - SQL 用户定义类型的完全限定名,如果该参数不是用户定义类型或 REF 值,则忽略该参数
抛出:
SQLException - 如果发生错误或者给定的参数索引超出范围
另请参见:
getParams()

setBoolean

public void setBoolean(int parameterIndex,
                       boolean x)
                throws SQLException
将指定参数设置为 Java 编程语言中的给定 boolean 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL BIT 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setByte

public void setByte(int parameterIndex,
                    byte x)
             throws SQLException
将指定参数设置为 Java 编程语言中的给定 byte 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL TINYINT 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setShort

public void setShort(int parameterIndex,
                     short x)
              throws SQLException
将指定参数设置为 Java 编程语言中的给定 short 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL SMALLINT 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setInt

public void setInt(int parameterIndex,
                   int x)
            throws SQLException
将指定参数设置为 Java 编程语言中的 int 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL INTEGER 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setLong

public void setLong(int parameterIndex,
                    long x)
             throws SQLException
将指定参数设置为 Java 编程语言中的给定 long 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL BIGINT 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setFloat

public void setFloat(int parameterIndex,
                     float x)
              throws SQLException
将指定参数设置为 Java 编程语言中的给定 float 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL FLOAT 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setDouble

public void setDouble(int parameterIndex,
                      double x)
               throws SQLException
将指定参数设置为 Java 编程语言中的给定 double 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL DOUBLE 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setBigDecimal

public void setBigDecimal(int parameterIndex,
                          BigDecimal x)
                   throws SQLException
将指定参数设置为给定的 java.lang.BigDecimal 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL NUMERIC 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setString

public void setString(int parameterIndex,
                      String x)
               throws SQLException
将指定参数设置为给定的 String 值。在将此值发送给数据库时,驱动程序将它转换成一个 SQL VARCHARLONGVARCHAR 值(取决于该参数相对于驱动程序在 VARCHAR 值上的限制的相对大小)。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setBytes

public void setBytes(int parameterIndex,
                     byte[] x)
              throws SQLException
将指定参数设置为给定的 byte 数组。在将此值发送给数据库时,驱动程序将它转换成一个 SQL VARBINARYLONGVARBINARY 值(取决于该参数相对于驱动程序在 VARBINARY 值上的限制的相对大小)。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setDate

public void setDate(int parameterIndex,
                    Date x)
             throws SQLException
将指定参数设置为给定的 java.sql.Date 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL DATE 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setDate 后再调用方法 getParams 将返回一个数组,其中要为占位符参数编号 parameterIndex 设置的值是作为第二个参数提供的 Date 对象。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 参数值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setTime

public void setTime(int parameterIndex,
                    Time x)
             throws SQLException
将指定参数设置为给定的 java.sql.Time 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL TIME 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setTime 方法后再调用方法 getParams 将返回一个已经设置的参数所组成的数组。要为参数占位符编号 parameterIndex 进行设置的参数是设置为此方法第二个参数的 Time 对象。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 一个 java.sql.Time 对象,将设置为占位符参数 parameterIndex 的值
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setTimestamp

public void setTimestamp(int parameterIndex,
                         Timestamp x)
                  throws SQLException
将指定参数设置为给定的 java.sql.Timestamp 值。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL TIMESTAMP 值。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setTimestamp 后再调用方法 getParams 将返回一个数组,其中占位符参数编号 parameterIndex 的值是作为此方法第二个参数提供的 Timestamp 对象。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 一个 java.sql.Timestamp 对象
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setAsciiStream

public void setAsciiStream(int parameterIndex,
                           InputStream x,
                           int length)
                    throws SQLException
将指定参数设置为给定的 java.io.InputStream 对象,该对象将具有指定的字节数。将读取该流的内容并发送到数据库。如果读取并发送到数据库的字节数不等于 length,则此方法抛出 SQLException 对象。

在将一个非常大的 ASCII 值输入到 LONGVARCHAR 参数时,通过 java.io.InputStream 对象将它发送给参数可能更实际一些。在到达文件末尾之前,启用 JDBC 技术的驱动程序将根据需要从该流读取数据。驱动程序将执行从 ASCII 到数据库 CHAR 格式的任何必要转换。

注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用 setAsciiStream 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.io.InputStream 对象。第二个元素是为 length 设置的值。第三个元素是内部 BaseRowSet 常量,指示传递到此方法的流是一个 ASCII 流。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的输入流是第二个占位符参数的值,则包含该值的数组将是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 包含 ASCII 参数值的 Java 输入流
length - 流中的字节数。这是驱动程序要发送到 DBMS 的字节数;长度为 0 或小于 0 是未定义的,但会导致在底层 JDBC 驱动程序中抛出无效长度异常。
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者当连接到数据源时,驱动程序读取和发送到数据库的字节数不等于 length 中指定的字节数
另请参见:
getParams()

setBinaryStream

public void setBinaryStream(int parameterIndex,
                            InputStream x,
                            int length)
                     throws SQLException
将指定参数设置为给定的 java.io.InputStream 对象,该对象具有指定的字节数。将读取该流的内容并发送到数据库。如果读取并发送到数据库的字节数不等于 length,则此方法抛出 SQLException 对象。

在将一个非常大的二进制值输入到 LONGVARBINARY 参数时,通过 java.io.InputStream 对象将它发送给该参数可能更实际一些。在到达文件末尾之前,启用 JDBC 技术的驱动程序将根据需要从该流读取数据。

注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用 setBinaryStream 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.io.InputStream 对象。第二个元素是为 length 设置的值。第三个元素是内部 BaseRowSet 常量,指示传递到此方法的流是一个二进制流。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的输入流是第二个占位符参数的值,则包含该值的数组将是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 包含要设置的二进制值的输入流
length - 流中的字节数;长度为 0 或小于 0 是未定义的,但会导致在底层 JDBC 驱动程序中抛出无效长度异常。
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者当连接到数据源时,驱动程序读取和发送到数据库的字节数不等于 length 中指定的字节数
另请参见:
getParams()

setUnicodeStream

public void setUnicodeStream(int parameterIndex,
                             InputStream x,
                             int length)
                      throws SQLException
已过时。 应该使用 getCharacterStream 替代它

将指定参数设置为给定的 java.io.InputStream 对象,该对象具有指定的字节数。将读取该流的内容并发送到数据库。如果读取和发送到数据库的字节数不等于 length,则此方法抛出 SQLException

在将一个非常大的 Unicode 值输入到 LONGVARCHAR 参数时,通过 java.io.InputStream 对象将它发送给该参数可能更实际一些。在到达文件末尾之前,启用 JDBC 技术的驱动程序将根据需要从该流读取数据。驱动程序将执行从 Unicode 到数据库 CHAR 格式的任何必要转换。Unicode 流的字节格式必须是 Java UTF-8,这在 Java 虚拟机规范中定义。

注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。

此方法已废弃,应该使用 getCharacterStream 替代它。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。调用 setUnicodeStream 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.io.InputStream 对象。第二个元素是为 length 设置的值。第三个元素是内部 BaseRowSet 常量,指示传递到此方法的流是一个 Unicode 流。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的输入流是第二个占位符参数的值,则包含该值的数组将是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 包含 UNICODE 参数值的 java.io.InputStream 对象
length - 输入流中的字节数
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者驱动程序读取和发送到数据库的字节数不等于 length 中指定的字节数
另请参见:
getParams()

setCharacterStream

public void setCharacterStream(int parameterIndex,
                               Reader reader,
                               int length)
                        throws SQLException
将指定参数设置为给定的 java.io.Reader 对象,该对象具有指定的字符数。将读取该 reader 的内容并发送到数据库。如果读取和发送到数据库的字节数不等于 length,则此方法抛出 SQLException

在将一个非常大的 Unicode 值输入到 LONGVARCHAR 参数时,通过 Reader 对象将它发送给该参数可能更实际一些。在到达文件末尾之前,启用 JDBC 技术的驱动程序将根据需要从该流读取数据。驱动程序将执行从 Unicode 到数据库 CHAR 格式的任何必要转换。Unicode 流的字节格式必须是 Java UTF-8,这在 Java 虚拟机规范中定义。

注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用 setCharacterStream 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.io.Reader 对象。第二个元素是为 length 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的 reader 是第二个占位符参数的值,则包含该值的数组将是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
reader - 包含 Unicode 数据的 Reader 对象
length - 流中的字符数;长度为 0 或小于 0 是未定义的,但会导致在基础 JDBC 驱动程序中抛出无效长度异常。
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者当连接到数据源时,驱动程序读取和发送到数据库的字节数不等于 length 中指定的字节数
另请参见:
getParams()

setObject

public void setObject(int parameterIndex,
                      Object x,
                      int targetSqlType,
                      int scale)
               throws SQLException
将指定参数设置为 Java 编程语言中的 Object。第二个参数必须是 Object 类型。对于整数值,应该使用 java.lang 等效对象。例如,为 int 使用类 Integer

将此对象发送到数据库前,驱动程序将它转换成指定的目标 SQL 类型。如果对象具有自定义映射(属于实现 SQLData 的类),则驱动程序应该调用 SQLData.writeSQL 方法将该对象写入 SQL 数据流中。另一方面,如果该对象是实现 RefBlobClobStructArray 的类,则驱动程序应该将它作为相应 SQL 类型的值传递给数据库。

注意,此方法可用于传递特定于数据库的抽象数据类型。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。调用这种形式的 setObject 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 Object 实例。第二个元素是为 targetSqlType 设置的值。第三个元素是为 scale 设置的值,如果要设置的对象类型不是 java.sql.Types.NUMERICjava.sql.Types.DECIMAL,则驱动程序忽略该值。参数编号由方法 getParams 返回的数组中的元素位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的对象是第二个占位符参数的值,则包含该值的数组是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 包含输入参数值的 Object;必须是 Object 类型
targetSqlType - 要发送到数据库的 SQL 类型(在 java.sql.Types 中定义)。scale 参数可以进一步限定此类型。如果提供了非标准的 targetSqlType,则此方法不会抛出 SQLException。这隐含着对非标准 SQL 类型的支持。
scale - 对于类型 java.sql.Types.DECIMALjava.sql.Types.NUMERIC,该值是小数点后的位数。对于所有其他类型,将忽略此值。
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setObject

public void setObject(int parameterIndex,
                      Object x,
                      int targetSqlType)
               throws SQLException
使用给定 Object 值设置指定参数的值。此方法类似于 setObject(int parameterIndex, Object x, int targetSqlType, int scale),不同之处在于它假定 scale 为 0。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setObject 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 Object 实例。第二个元素是为 targetSqlType 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的对象是第二个占位符参数的值,则包含该值的数组是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 包含输入参数值的 Object;必须是 Object 类型
targetSqlType - 要发送到数据库的 SQL 类型(在 java.sql.Types 中定义)。如果提供了非标准的 targetSqlType,则此方法不会抛出 SQLException。这隐含着对非标准 SQL 类型的支持。
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setObject

public void setObject(int parameterIndex,
                      Object x)
               throws SQLException
将指定参数设置为 Java 编程语言中的 Object。第二个参数必须是 Object 类型。对于整数值,应该使用 java.lang 等效对象。例如,为 int 使用类 Integer

JDBC 规范定义了一个从 Java Object 类型到 SQL 类型的标准映射。在将给定的对象发送到数据库之前,驱动程序使用此标准映射将其转换为对应的 SQL 类型。如果对象具有自定义映射(属于实现 SQLData 的类),则驱动程序应该调用 SQLData.writeSQL 方法将该对象写入 SQL 数据流中。

另一方面,如果该对象是实现 RefBlobClobStructArray 的类,则驱动程序应该将它作为相应 SQL 类型的值传递给数据库。

如果出现混淆,例如如果该对象是实现多个接口的类,则此方法抛出异常。

注意,此方法可用于传递特定于数据库的抽象数据类型。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用此方法后再调用方法 getParams 将返回一个当前命令参数的 object 数组,其中包括已为占位符参数编号 parameterIndex 设置的 Object。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 包含输入参数值的对象
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者在要设置的对象实现方面存在混淆
另请参见:
getParams()

setRef

public void setRef(int parameterIndex,
                   Ref ref)
            throws SQLException
将指定参数设置为 Java 编程语言中的给定 Ref 对象。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL REF 值。在内部,该 Ref 被表示成 SerialRef,以确保可序列化性。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用此方法后再调用方法 getParams 将返回一个当前命令参数的 object 数组,其中包括已为占位符参数编号 parameterIndex 设置的 Ref 对象。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
ref - 表示 SQL REF 值的 Ref 对象;不能为 null
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者 Ref 对象为 null;或者 Ref 对象返回 null 基本类型名称。
另请参见:
getParams(), SerialRef

setBlob

public void setBlob(int parameterIndex,
                    Blob x)
             throws SQLException
将指定参数设置为 Java 编程语言中的给定 Blob 对象。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL BLOB 值。在内部,该 Blob 被表示成 SerialBlob,以确保可序列化性。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用此方法后再调用方法 getParams 将返回一个当前命令参数的 object 数组,其中包括已为占位符参数编号 parameterIndex 设置的 Blob 对象。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 表示 SQL BLOB 值的 Blob 对象
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams(), SerialBlob

setClob

public void setClob(int parameterIndex,
                    Clob x)
             throws SQLException
将指定参数设置为 Java 编程语言中的给定 Clob 对象。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL CLOB 值。在内部,该 Clob 被表示成 SerialClob,以确保可序列化性。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用此方法后再调用方法 getParams 将返回一个当前命令参数的 object 数组,其中包括已为占位符参数编号 parameterIndex 设置的 Clob 对象。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 表示 SQL CLOB 值的 Clob 对象;不能为 null
抛出:
SQLException - 如果发生错误、参数索引超出范围,或者 Clob 为 null
另请参见:
getParams(), SerialBlob

setArray

public void setArray(int parameterIndex,
                     Array array)
              throws SQLException
将指定参数设置为 Java 编程语言中的 Array 对象。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL ARRAY 值。在内部,该 Array 被表示成 SerialArray,以确保可序列化性。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用此方法后再调用方法 getParams 将返回一个当前命令参数的 object 数组,其中包括已为占位符参数编号 parameterIndex 设置的 Array 对象。注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是元素编号 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
array - 表示 SQL ARRAY 值的 Array 对象,不能为 null。传递到此方法的 Array 对象必须对所有调用的 getArray() 方法返回非 null 的 Object。
抛出:
SQLException - 如果发生错误、参数索引超出范围或者 ARRAY 为 null
另请参见:
getParams(), SerialArray

setDate

public void setDate(int parameterIndex,
                    Date x,
                    Calendar cal)
             throws SQLException
将指定参数设置为给定的 java.sql.Date 对象。当 DBMS 不存储时区信息时,驱动程序将使用给定的 Calendar 对象构造要发送到数据库的 SQL DATE 值。利用 Calendar 对象,驱动程序可以在考虑自定义时区的情况下计算日期。如果没有指定任何 Calendar 对象,则驱动程序使用正在运行应用程序的虚拟机所在的时区。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setDate 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.sql.Date 对象。第二个元素是为 cal 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的 date 是第二个占位符参数的值,则包含该值的数组是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 表示 SQL DATE 值的 java.sql.Date 对象
cal - 构造日期时所使用的 java.util.Calendar 对象
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setTime

public void setTime(int parameterIndex,
                    Time x,
                    Calendar cal)
             throws SQLException
将指定参数设置为给定的 java.sql.Time 对象。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL TIME 值。

当 DBMS 不存储时区信息时,驱动程序将使用给定的 Calendar 对象构造要发送到数据库的 SQL TIME 值。利用 Calendar 对象,驱动程序可以在考虑自定义时区的情况下计算日期。如果没有指定任何 Calendar 对象,则驱动程序使用正在运行应用程序的虚拟机所在的时区。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setTime 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.sql.Time 对象。第二个元素是为 cal 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的 time 是第二个占位符参数的值,则包含该值的数组是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 一个 java.sql.Time 对象
cal - 驱动程序可用来构造时间的 java.util.Calendar 对象
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

setTimestamp

public void setTimestamp(int parameterIndex,
                         Timestamp x,
                         Calendar cal)
                  throws SQLException
将指定参数设置为给定的 java.sql.Timestamp 对象。在将该对象发送到数据库时,驱动程序将它转换成一个 SQL TIMESTAMP 值。

当 DBMS 不存储时区信息时,驱动程序将使用给定的 Calendar 对象构造要发送到数据库的 SQL TIMESTAMP 值。利用 Calendar 对象,驱动程序可以在考虑自定义时区的情况下计算 timestamp。如果没有指定任何 Calendar 对象,则驱动程序使用正在运行应用程序的虚拟机所在的时区。

此方法设置的参数值是内部存储的,当调用方法 execute 时,将该值作为此 RowSet 对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 JSR-114 RowSet 接口的所有类中提供 executepopulate 之类的方法。

注:JdbcRowSet 不需要 populate 方法,因为它没有在此类中定义。

调用这种形式的 setTimestamp 后再调用方法 getParams 将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.sql.Timestamp 对象。第二个元素是为 cal 设置的值。参数编号由方法 getParams 返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的 timestamp 是第二个占位符参数的值,则包含该值的数组是 getParams 返回数组中的第二个元素。

注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterIndex 的数组元素是 parameterIndex -1。

参数:
parameterIndex - 此 RowSet 对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
x - 一个 java.sql.Timestamp 对象
cal - 驱动程序构造 timestamp 所使用的 java.util.Calendar 对象
抛出:
SQLException - 如果发生错误或者参数索引超出范围
另请参见:
getParams()

clearParameters

public void clearParameters()
                     throws SQLException
清除所有此 RowSet 对象的内部参数表示形式的当前参数值,这些参数值将在执行此 RowSet 对象的命令时在其中设置这些参数。

通常参数值对此 RowSet 对象的重复使用仍然有效。使用设置方法设置参数值可自动清除指定参数的值,并用新的指定值替换该值。

此方法由 setCommand 方法内部调用,以清除前一条命令设置的所有参数。

另外,此方法与 initParams 方法的不同之处在于它保持 RowSet 对象的模式。

抛出:
SQLException - 如果清除参数时发生错误

getParams

public Object[] getParams()
                   throws SQLException
检索一个数组,其中包含为此 RowSet 对象命令设置的参数值(包括 Object 和基本类型),如果尚未设置任何参数,则抛出 SQLException 对象。将命令发送到 DBMS 执行前,这些参数将替换 PreparedStatement 对象中的占位符参数,该对象是用于扩展了 BaseRowSet 类的 RowSet 实现的命令。

返回数组的每个元素都是一个 Object 实例,包含提供给设置方法的参数值。元素的顺序由提供给 parameterIndex 的值确定。如果设置方法仅带有参数索引和要设置的值(可能为 null),则数组元素将包含要设置的值(以 Object 的形式表示)。如果还有附加参数,则数组元素本身就是一个数组,包含要设置的值和所有提供给设置方法的附加参数值。如果该方法设置一个流,则数组元素包括将提供给该方法的流类型。这些附加参数供驱动程序或 DBMS 使用,可以使用这些参数,也可以不使用。

注:类型 ArrayBlobClobRef 的已存储参数值分别以 SerialArraySerialBlobSerialClobSerialRef 的形式返回。

返回:
Object 实例所组成的数组,包括在此 RowSet 对象的命令中所设置的参数值;如果尚未设置任何参数,则返回空数组
抛出:
SQLException - 如果检索此 RowSet 对象参数的对象数组时发生错误,或者并非所有的参数都已经设置

JavaTM 2 Platform
Standard Ed. 5.0

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

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