Module java.sql.rowset
Package javax.sql.rowset

Class BaseRowSet

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

public abstract class BaseRowSet extends Object implements Serializable, Cloneable
提供一个抽象类,为RowSet对象提供基本功能。基本功能包括具有属性和发送事件通知,所有JavaBeans组件都必须实现这些功能。

1.0 概述

BaseRowSet类为所有RowSet实现提供核心功能,所有标准实现可能与一个或多个RowSet接口结合使用此类,以提供标准的特定于供应商的实现。换句话说,所有实现必须至少实现RowSet接口中的一个(JdbcRowSetCachedRowSetJoinRowSetFilteredRowSetWebRowSet)。这意味着扩展BaseRowSet类的任何实现也必须实现一个RowSet接口。

BaseRowSet类提供以下功能:

  • 属性
    • 用于存储当前属性的字段
    • 用于获取和设置属性的方法
  • 事件通知
  • 一套完整的setter方法用于设置RowSet对象命令中的参数
    • 用于存储流实例的字段
    • 用于指示流类型的常量

2.0 设置属性

所有行集维护一组属性,通常将使用工具设置这些属性。行集具有的属性数量和类型将因RowSet实现的功能及其获取数据的方式而异。例如,从ResultSet对象获取数据的行集需要设置用于建立数据库连接所需的属性。如果一个RowSet对象使用DriverManager工具进行连接,它需要设置一个用于标识适当驱动程序的JDBC URL的属性,以及设置提供用户名和密码的属性。另一方面,如果行集使用DataSource对象进行连接(这是首选方法),则不需要设置JDBC URL属性。相反,它需要设置数据源的逻辑名称属性以及用户名和密码属性。

注意:为了使用DataSource对象进行连接,DataSource对象必须已在使用Java命名和目录接口(JNDI)API的命名服务中注册。这通常由担任系统管理员职务的人员执行。

3.0 设置命令及其参数

当行集从关系数据库获取数据时,它执行一个命令(查询),产生一个ResultSet对象。这个查询是为RowSet对象的命令属性设置的命令。行集通过将数据从ResultSet对象读取到自身中来填充自身。如果查询包含要设置的值的占位符,则使用BaseRowSet setter方法来设置这些值。所有setter方法允许将这些值设置为null(如果需要)。

以下代码片段说明了CachedRowSet对象crs可能如何设置其命令属性。请注意,如果使用工具设置属性,则工具将使用此代码。


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

在此示例中,CREDIT_LIMITREGION的值是占位参数,用问号(?)表示。第一个问号是占位参数编号1,第二个问号是占位参数编号2,依此类推。在执行查询之前,必须为任何占位参数设置值。为了设置这些占位参数,BaseRowSet类提供了一组setter方法,类似于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类提供两种setter方法,一种用于设置属性,另一种用于设置占位参数。本节讨论的是设置占位参数的setter方法。

使用BaseRowSet setter方法设置的占位参数存储为内部Hashtable对象中的对象。原始类型存储为它们的Object类型。例如,byte存储为Byte对象,int存储为Integer对象。调用execute方法时,Hashtable对象中的值将替换命令中适当的占位参数。

调用方法getParams将返回存储在Hashtable对象中的值作为Object实例数组。此数组中的元素可能是简单的Object实例或数组(这是Object的一种类型)。使用哪种setter方法确定数组中的元素是Object还是数组。

大多数用于设置占位参数的方法都需要两个参数,第一个参数指示要设置的占位参数,第二个参数给出要设置的值。例如,setIntsetStringsetBooleansetLong等方法属于此类。在调用这些方法后,调用方法getParams将返回一个包含已设置值的数组。数组中的每个元素都是表示已设置值的Object实例。数组中的值的顺序由传递给setter方法的int(第一个参数)确定。数组中的值是传递给setter方法的值。换句话说,数组中的第一个元素是要设置为RowSet对象命令中第一个占位参数的值。第二个元素是要设置为第二个占位参数的值,依此类推。

一些方法,如setNullsetObject,会向驱动程序和DBMS发送额外的信息。在使用这些setter方法之一后调用方法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名称。与其他setter方法一样,由getParams返回的数组中元素的位置指示要设置的占位参数。因此,例如,如果传递给setNull的参数是2,则由getParams返回的数组中的第二个元素将是包含两个或三个元素的数组。

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

方法setAsciiStreamsetBinaryStreamsetCharacterStreamsetUnicodeStream(已弃用,应改用getCharacterStream)需要三个参数,因此,由getParams返回的数组中的元素也是数组。这些setter方法的不同之处在于,除了参数提供的信息外,数组还包含一个指示正在设置的流类型的BaseRowSet常量之一。

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

5.0 事件通知

BaseRowSet类为行集提供事件通知机制。它包含字段listeners,用于添加和移除监听器的方法,以及通知监听器更改的方法。

监听器是实现了RowSetListener接口的对象。如果它已被添加到RowSet对象的监听器列表中,当该RowSet对象上发生事件时,监听器将会收到通知。每个监听器对RowSetListener方法的实现定义了当收到事件发生通知时该对象将执行的操作。

RowSet对象可能发生三种可能的事件:

  1. 游标移动
  2. 单个行被更改(更新、删除或插入)
  3. RowSet对象的整体内容被更改

用于通知的BaseRowSet方法指示了发生的事件类型。例如,方法notifyRowChanged表示行已被更新、删除或插入。每个通知方法都会创建一个RowSetEvent对象,该对象将被提供给监听器以标识发生事件的RowSet对象。监听器对这些信息的处理方式,可能是不做任何操作,取决于其如何实现。

6.0 默认行为

默认的 BaseRowSet 对象被初始化为许多起始值。以下是扩展了 BaseRowSet 类的默认 RowSet 实例的特点:
  • 具有可滚动的游标,并且不显示其他人所做更改。
  • 可更新。
  • 不显示已删除的行。
  • 对驱动程序执行RowSet对象命令的时间没有限制。
  • 不限制它可以包含的行数。
  • 不限制列可以包含的字节数。注意:此限制仅适用于保存以下类型值的列:BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR
  • 不会看到未提交的数据(进行“脏”读取)。
  • 已打开转义处理。
  • 其连接的类型映射设置为null
  • 有一个空的Vector对象用于存储为RowSet对象命令中的占位符参数设置的值。

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

    crs.setMaxRows(500);
 
在扩展此 BaseRowSet 类的方法 必须 对定义的断言违反抛出一个 SQLException 对象。此外,如果扩展类覆盖并重新实现任何 BaseRowSet 方法并遇到连接或底层数据源问题,该方法 可能 也会因此原因抛出一个 SQLException 对象。
自 JDK 版本:
1.5
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    表示给定参数为 ASCII 流的常量,用于 RowSetReaderImpl 对象。
    protected InputStream
    将由方法 getAsciiStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。
    static final int
    表示给定参数为二进制流的常量,用于 RowSetReaderImpl 对象。
    protected InputStream
    将由方法 getBinaryStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。
    protected Reader
    将由方法 getCharacterStream 返回的 Reader 对象,该方法在 ResultSet 接口中指定。
    static final int
    表示给定参数为 Unicode 流的常量,用于 RowSetReaderImpl 对象。
    protected InputStream
    将由方法 getUnicodeStream 返回的 InputStream 对象,该方法在 ResultSet 接口中指定。
  • Constructor Summary

    Constructors
    Constructor
    Description
    构造一个新的 BaseRowSet 对象,并使用默认的 Vector 对象初始化其 listeners 字段。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    每当此 RowSet 对象上发生事件时,将通知侦听器。
    void
    清除此 RowSet 对象内部表示的当前所有参数值,这些参数将在执行此 RowSet 对象的命令时设置。
    检索用于此 RowSet 对象的命令的 SQL 查询。
    int
    返回此 RowSet 对象的并发性。
    返回逻辑名称,当提供给使用 Java 命名和目录接口 (JNDI) API 的命名服务时,将检索到一个 javax.sql.DataSource 对象。
    boolean
    确定是否为此 RowSet 对象启用了转义处理。
    int
    检索此 RowSet 对象的当前设置的获取方向。
    int
    返回此 RowSet 对象的获取大小。
    int
    检索此 RowSet 对象中可用于列值的最大字节数。
    int
    检索此 RowSet 对象可能包含的最大行数。
    Object[]
    检索包含为此 RowSet 对象的命令设置的参数值(包括对象和基本类型)的数组,并在未设置所有参数时抛出一个 SQLException 对象。
    返回用于创建此 RowSet 对象的数据库连接的密码。
    int
    检索驱动程序等待查询执行的最大秒数。
    boolean
    检索一个 boolean,指示标记为删除的行是否出现在当前行集中。
    int
    返回此 RowSet 对象的连接的事务隔离属性。
    int
    返回此 RowSet 对象的类型。
    检索与此 RowSet 对象的 Connection 对象关联的类型映射。
    getUrl()
    检索此 RowSet 对象的 javax.sql.Reader 对象使用的 JDBC URL,以使用启用 JDBC 技术的驱动程序与关系数据库建立连接。
    返回用于创建数据库连接的用户名。
    protected void
    执行必要的内部配置和初始化,以允许任何 JDBC RowSet 实现开始使用由 BaseRowSet 实例提供的标准设施。
    boolean
    返回一个 boolean,指示此 RowSet 对象是否为只读。
    protected void
    通知所有注册到此 RowSet 对象的侦听器,其游标已移动。
    protected void
    通知所有注册到此 RowSet 对象的侦听器,其行之一已更改。
    protected void
    通知所有注册到此 RowSet 对象的侦听器,其全部内容已更改。
    void
    从此 RowSet 对象的侦听器列表中移除指定的对象。
    void
    setArray(int parameterIndex, Array array)
    将指定参数设置为 Java 编程语言中的 Array 对象。
    void
    setAsciiStream(int parameterIndex, InputStream x)
    将指定参数设置为此 RowSet 对象的命令中的给定输入流。
    void
    setAsciiStream(int parameterIndex, InputStream x, int length)
    将指定参数设置为给定的 java.io.InputStream 对象,该对象将具有指定的字节数。
    void
    setAsciiStream(String parameterName, InputStream x)
    将指定参数设置为给定的输入流。
    void
    setAsciiStream(String parameterName, InputStream x, int length)
    将指定参数设置为给定的输入流,该输入流将具有指定的字节数。
    void
    setBigDecimal(int parameterIndex, BigDecimal x)
    将指定参数设置为给定的 java.lang.BigDecimal 值。
    void
    setBigDecimal(String parameterName, BigDecimal x)
    将指定参数设置为给定的 java.math.BigDecimal 值。
    void
    setBinaryStream(int parameterIndex, InputStream x)
    将指定参数设置为此 RowSet 对象的命令中的给定输入流。
    void
    setBinaryStream(int parameterIndex, InputStream x, int length)
    将指定参数设置为给定的 java.io.InputStream 对象,该对象将具有指定的字节数。
    void
    setBinaryStream(String parameterName, InputStream x)
    将指定参数设置为给定的输入流。
    void
    setBinaryStream(String parameterName, InputStream x, int length)
    将指定参数设置为给定的输入流,该输入流将具有指定的字节数。
    void
    setBlob(int parameterIndex, InputStream inputStream)
    将指定参数设置为 InputStream 对象。
    void
    setBlob(int parameterIndex, InputStream inputStream, long length)
    将指定参数设置为 InputStream 对象。
    void
    setBlob(int parameterIndex, Blob x)
    将指定参数设置为 Java 编程语言中的给定 Blob 对象。
    void
    setBlob(String parameterName, InputStream inputStream)
    将指定参数设置为 InputStream 对象。
    void
    setBlob(String parameterName, InputStream inputStream, long length)
    将指定参数设置为 InputStream 对象。
    void
    setBlob(String parameterName, Blob x)
    将指定参数设置为给定的 java.sql.Blob 对象。
    void
    setBoolean(int parameterIndex, boolean x)
    将指定参数设置为给定的 Java boolean 值。
    void
    setBoolean(String parameterName, boolean x)
    将指定参数设置为给定的 Java boolean 值。
    void
    setByte(int parameterIndex, byte x)
    将指定参数设置为给定的 Java byte 值。
    void
    setByte(String parameterName, byte x)
    将指定参数设置为给定的 Java byte 值。
    void
    setBytes(int parameterIndex, byte[] x)
    将指定参数设置为给定的字节数组。
    void
    setBytes(String parameterName, byte[] x)
    将指定参数设置为给定的 Java 字节数组。
    void
    setCharacterStream(int parameterIndex, Reader reader)
    将指定参数设置为此 RowSet 对象的命令中的给定 Reader 对象。
    void
    setCharacterStream(int parameterIndex, Reader reader, int length)
    将指定参数设置为给定的 java.io.Reader 对象,该对象将具有指定的字符数。
    void
    setCharacterStream(String parameterName, Reader reader)
    将指定参数设置为给定的 Reader 对象。
    void
    setCharacterStream(String parameterName, Reader reader, int length)
    将指定参数设置为给定的 Reader 对象,该对象的长度为给定的字符数。
    void
    setClob(int parameterIndex, Reader reader)
    将指定参数设置为 Reader 对象。
    void
    setClob(int parameterIndex, Reader reader, long length)
    将指定参数设置为 Reader 对象。
    void
    setClob(int parameterIndex, Clob x)
    将指定参数设置为 Java 编程语言中的给定 Clob 对象。
    void
    setClob(String parameterName, Reader reader)
    将指定参数设置为 Reader 对象。
    void
    setClob(String parameterName, Reader reader, long length)
    将指定参数设置为 Reader 对象。
    void
    setClob(String parameterName, Clob x)
    将指定参数设置为给定的 java.sql.Clob 对象。
    void
    将此 RowSet 对象的 command 属性设置为给定的 String 对象,并清除为上一个命令设置的参数(如果有)。
    void
    setConcurrency(int concurrency)
    将此 RowSet 对象的并发性设置为指定的并发性。
    void
    将此 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
    setDate(String parameterName, Date x)
    将指定参数设置为给定的 java.sql.Date 值,使用运行应用程序的虚拟机的默认时区。
    void
    setDate(String parameterName, Date x, Calendar cal)
    将指定参数设置为给定的 java.sql.Date 值,使用给定的 Calendar 对象。
    void
    setDouble(int parameterIndex, double x)
    将指定参数设置为给定的 Java double 值。
    void
    setDouble(String parameterName, 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
    setFloat(String parameterName, float x)
    将指定参数设置为给定的 Java float 值。
    void
    setInt(int parameterIndex, int x)
    将指定参数设置为给定的 Java int 值。
    void
    setInt(String parameterName, int x)
    将指定参数设置为给定的 Java int 值。
    void
    setLong(int parameterIndex, long x)
    将指定参数设置为给定的 Java long 值。
    void
    setLong(String parameterName, long x)
    Sets the designated parameter to the given Java long value.
    void
    setMaxFieldSize(int max)
    Sets the maximum number of bytes that can be used for a column value in this RowSet object to the given number.
    void
    setMaxRows(int max)
    设置此RowSet对象可以包含的最大行数为给定数字。
    void
    setNCharacterStream(int parameterIndex, Reader value)
    将此RowSet对象命令中的指定参数设置为Reader对象。
    void
    setNCharacterStream(int parameterIndex, Reader value, long length)
    将指定参数设置为Reader对象。
    void
    setNCharacterStream(String parameterName, Reader value)
    将指定参数设置为Reader对象。
    void
    setNCharacterStream(String parameterName, Reader value, long length)
    将指定参数设置为Reader对象。
    void
    setNClob(int parameterIndex, Reader reader)
    将指定参数设置为Reader对象。
    void
    setNClob(int parameterIndex, Reader reader, long length)
    将指定参数设置为Reader对象。
    void
    setNClob(int parameterIndex, NClob value)
    将指定参数设置为java.sql.NClob对象。
    void
    setNClob(String parameterName, Reader reader)
    将指定参数设置为Reader对象。
    void
    setNClob(String parameterName, Reader reader, long length)
    将指定参数设置为Reader对象。
    void
    setNClob(String parameterName, NClob value)
    将指定参数设置为java.sql.NClob对象。
    void
    setNString(int parameterIndex, String value)
    将指定参数设置为给定的String对象。
    void
    setNString(String parameterName, String value)
    将指定参数设置为给定的String对象。
    void
    setNull(int parameterIndex, int sqlType)
    将指定参数设置为SQL NULL
    void
    setNull(int parameterIndex, int sqlType, String typeName)
    将指定参数设置为SQL NULL
    void
    setNull(String parameterName, int sqlType)
    将指定参数设置为SQL NULL
    void
    setNull(String parameterName, 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
    setObject(String parameterName, Object x)
    使用给定对象设置指定参数的值。
    void
    setObject(String parameterName, Object x, int targetSqlType)
    使用给定对象设置指定参数的值。
    void
    setObject(String parameterName, Object x, int targetSqlType, int scale)
    使用给定对象设置指定参数的值。
    void
    将用于为此RowSet对象创建数据库连接的密码设置为给定的String对象。
    void
    setQueryTimeout(int seconds)
    将驱动程序等待查询执行的最大秒数设置为给定数字。
    void
    setReadOnly(boolean value)
    将此RowSet对象的readOnly属性设置为给定的boolean
    void
    setRef(int parameterIndex, Ref ref)
    将指定参数设置为Java编程语言中给定的Ref对象。
    void
    setRowId(int parameterIndex, RowId x)
    将指定参数设置为给定的java.sql.RowId对象。
    void
    setRowId(String parameterName, RowId x)
    将指定参数设置为给定的java.sql.RowId对象。
    void
    setShort(int parameterIndex, short x)
    将指定参数设置为Java编程语言中给定的short
    void
    setShort(String parameterName, short x)
    将指定参数设置为给定的Javashort值。
    void
    setShowDeleted(boolean value)
    将属性showDeleted设置为给定的boolean值,确定标记为删除的行是否出现在当前行集中。
    void
    setSQLXML(int parameterIndex, SQLXML xmlObject)
    将指定参数设置为给定的java.sql.SQLXML对象。
    void
    setSQLXML(String parameterName, SQLXML xmlObject)
    将指定参数设置为给定的java.sql.SQLXML对象。
    void
    setString(int parameterIndex, String x)
    将指定参数设置为给定的String值。
    void
    setString(String parameterName, String x)
    将指定参数设置为给定的JavaString值。
    void
    setTime(int parameterIndex, Time x)
    将指定参数设置为给定的java.sql.Time值。
    void
    setTime(int parameterIndex, Time x, Calendar cal)
    将指定参数设置为给定的java.sql.Time对象。
    void
    setTime(String parameterName, Time x)
    将指定参数设置为给定的java.sql.Time值。
    void
    setTime(String parameterName, Time x, Calendar cal)
    将指定参数设置为给定的java.sql.Time值,并使用给定的Calendar对象。
    void
    setTimestamp(int parameterIndex, Timestamp x)
    将指定参数设置为给定的java.sql.Timestamp值。
    void
    setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
    将指定参数设置为给定的java.sql.Timestamp对象。
    void
    setTimestamp(String parameterName, Timestamp x)
    将指定参数设置为给定的java.sql.Timestamp值。
    void
    setTimestamp(String parameterName, Timestamp x, Calendar cal)
    将指定参数设置为给定的java.sql.Timestamp值,并使用给定的Calendar对象。
    void
    将此JDBC RowSet对象的事务隔离属性设置为给定常量。
    void
    setType(int type)
    将此RowSet对象的类型设置为指定类型。
    void
    将给定的java.util.Map对象安装为与此RowSet对象的Connection对象关联的类型映射。
    void
    setUnicodeStream(int parameterIndex, InputStream x, int length)
    已弃用。
    应使用getCharacterStream替代
    void
    setUrl(String url)
    将此RowSet对象的Url属性设置为给定的String对象,并将dataSource名称属性设置为null
    void
    setURL(int parameterIndex, URL x)
    将指定参数设置为给定的java.net.URL值。
    void
    将此RowSet对象的用户名属性设置为给定的用户名。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • UNICODE_STREAM_PARAM

      public static final int UNICODE_STREAM_PARAM
      表示给RowSetReaderImpl对象的常量,指定给定参数是Unicode流。此RowSetReaderImpl对象作为SyncFactory静态工厂SPI机制中定义的SyncProvider抽象类的扩展提供。
      参见:
    • BINARY_STREAM_PARAM

      public static final int BINARY_STREAM_PARAM
      表示给RowSetReaderImpl对象的常量,指定给定参数是二进制流。此RowSetReaderImpl对象作为SyncFactory静态工厂SPI机制中定义的SyncProvider抽象类的扩展提供。
      参见:
    • ASCII_STREAM_PARAM

      public static final int ASCII_STREAM_PARAM
      表示给RowSetReaderImpl对象的常量,指定给定参数是ASCII流。此RowSetReaderImpl对象作为SyncFactory静态工厂SPI机制中定义的SyncProvider抽象类的扩展提供。
      参见:
    • binaryStream

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

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

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

      protected Reader charStream
      将在ResultSet接口中指定的方法getCharacterStream返回的Reader对象。
  • Constructor Details

    • BaseRowSet

      public BaseRowSet()
      构造一个新的BaseRowSet对象,使用默认的Vector对象初始化其listeners字段。它初始化的其他默认值列在此类的类注释第6.0节中。
  • Method Details

    • initParams

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

      public void addRowSetListener(RowSetListener listener)
      每当此RowSet对象上发生事件时,将通知监听器。

      例如,监听器可能是需要更新的表格或图形,以准确反映RowSet对象的当前状态。

      注意:如果RowSetListener对象为null,此方法会静默丢弃null值,并不会将空引用添加到监听器集合中。

      注意:如果监听器已设置,并且新的RowSetListener实例被添加到已注册以接收来自此RowSet的事件通知的监听器集合中。

      参数:
      listener - 实现了javax.sql.RowSetListener接口并希望被通知此RowSet对象上发生的任何事件的对象;可能为null。
      参见:
    • removeRowSetListener

      public void removeRowSetListener(RowSetListener listener)
      从此RowSet对象的监听器列表中删除指定对象。如果给定参数不是已注册的监听器,则此方法不执行任何操作。注意:如果RowSetListener对象为null,此方法会静默丢弃null值。
      参数:
      listener - 在此RowSet对象的监听器列表中的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查询。命令属性包含将用于填充此RowSet对象的查询。

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

      命令由RowSet对象的读取器用于获取ResultSet对象。然后,读取器从ResultSet对象中读取数据,并使用它来填充此RowSet对象。

      command属性的默认值为null

      返回:
      作为此RowSet对象的command属性值的String;可能为null
      另请参阅:
    • setCommand

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

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

      参数:
      cmd - 包含将设置为此RowSet对象的命令属性的SQL查询的String对象;可能为null,但不得为空字符串
      抛出:
      SQLException - 如果提供空字符串作为命令值
      另请参阅:
    • getUrl

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

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

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

      public void setUrl(String url) throws SQLException
      将此RowSet对象的Url属性设置为给定的String对象,并将dataSource名称属性设置为null。Url属性是一个JDBC URL,在使用JDBC技术启用的驱动程序(“JDBC驱动程序”)和DriverManager创建连接时使用。可在驱动程序文档中找到要使用的特定驱动程序的正确JDBC URL。尽管有关如何形成JDBC URL的指南,但驱动程序供应商可以指定除长度为0(空字符串)之外的任何String对象。

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

      参数:
      url - 包含将用于为此RowSet对象建立与数据库的连接的JDBC URL的String对象;可能为null,但不得为空字符串
      抛出:
      SQLException - 如果设置Url属性时发生错误或提供的参数是长度为0(空字符串)的String对象
      另请参阅:
    • getDataSourceName

      public String getDataSourceName()
      返回提供给使用Java命名和目录接口(JNDI)API的命名服务时将检索javax.sql.DataSource对象的逻辑名称。此DataSource对象可用于建立与其代表的数据源的连接。

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

      返回:
      一个String对象,用于标识用于建立连接的DataSource对象;如果未设置逻辑名称,则返回null
      另请参阅:
    • setDataSourceName

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

      用户应设置Url属性或数据源名称属性之一。如果两个属性都设置了,则驱动程序将使用最近设置的属性。

      参数:
      name - 一个String对象,其中包含可供基于JNDI技术的命名服务使用的名称,以检索可用于获取连接的DataSource对象;可能为null,但不得为空字符串
      抛出:
      SQLException - 如果提供空字符串作为DataSource名称
      另请参阅:
    • getUsername

      public String getUsername()
      返回用于创建数据库连接的用户名。因为它不是序列化的,所以用户名属性在调用方法execute之前在运行时设置。
      返回:
      包含供数据源使用以创建连接的用户名的String对象;如果未设置,则可能为null(默认值)
      另请参阅:
    • setUsername

      public void setUsername(String name)
      将此RowSet对象的用户名属性设置为给定的用户名。因为它不是序列化的,所以用户名属性在调用方法execute之前在运行时设置。
      参数:
      name - 包含供数据源使用以创建连接的用户名的String对象。它可以为null。
      另请参阅:
    • getPassword

      public String getPassword()
      返回用于为此RowSet对象创建数据库连接的密码。因为密码属性不是序列化的,所以在调用方法execute之前在运行时设置。默认值为null
      返回:
      代表必须提供给数据库以创建连接的密码的String对象
      另请参阅:
    • setPassword

      public void setPassword(String pass)
      将用于为此RowSet对象创建数据库连接的密码设置为给定的String对象。因为密码属性不是序列化的,所以在调用方法execute之前在运行时设置。
      参数:
      pass - 代表必须提供给数据库以创建连接的密码的String对象。它可以为null。
      另请参阅:
    • 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
      参见:
    • 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对象类型时的错误
      参见:
    • 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
      参见:
    • isReadOnly

      public boolean isReadOnly()
      返回一个boolean,指示此RowSet对象是否为只读。任何尝试更新只读RowSet对象的操作都将导致抛出SQLException。默认情况下,如果可能进行更新,则行集是可更新的。
      返回:
      如果此RowSet对象无法更新,则为true;否则为false
      参见:
    • setReadOnly

      public void setReadOnly(boolean value)
      将此RowSet对象的readOnly属性设置为给定的boolean值。
      参数:
      value - true表示此RowSet对象为只读;false表示可更新
    • getTransactionIsolation

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

      对于像CachedRowSet这样在断开连接环境中运行的RowSet实现,SyncProvider对象提供了互补的锁定和数据完整性选项。下面描述的选项仅适用于连接的RowSet对象(JdbcRowSet对象)。

      返回:
      下列常量之一:Connection.TRANSACTION_NONEConnection.TRANSACTION_READ_UNCOMMITTEDConnection.TRANSACTION_READ_COMMITTEDConnection.TRANSACTION_REPEATABLE_READConnection.TRANSACTION_SERIALIZABLE
      参见:
    • setTransactionIsolation

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

      对于像CachedRowSet这样在断开连接环境中运行的RowSet实现,正在使用的SyncProvider对象提供了互补的锁定和数据完整性选项。下面描述的选项仅适用于连接的RowSet对象(JdbcRowSet对象)。

      参数:
      level - 下列常量之一,按升序列出:Connection.TRANSACTION_NONEConnection.TRANSACTION_READ_UNCOMMITTEDConnection.TRANSACTION_READ_COMMITTEDConnection.TRANSACTION_REPEATABLE_READConnection.TRANSACTION_SERIALIZABLE
      抛出:
      SQLException - 如果给定的参数不是Connection常量之一
      参见:
    • getTypeMap

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

      支持JDBC 3.0 API的驱动程序将使用具有关联类型映射的Connection对象。此类型映射最初为空,可以包含一个或多个完全限定的SQL名称和指示将命名的SQL值映射到的类的Class对象。在没有其他类型映射取代它时,连接的类型映射指定的类型映射用于自定义类型映射。

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

      返回:
      作为此RowSet对象的连接的类型映射的java.util.Map对象
    • setTypeMap

      public void setTypeMap(Map<String,Class<?>> map)
      将给定的java.util.Map对象安装为与此RowSet对象的连接关联的类型映射。除非向方法显式提供了不同的类型映射,否则将使用此类型映射中指示的自定义映射。
      参数:
      map - 包含SQL类型名称(用户定义类型UDT)到Java编程语言中的类的映射的java.util.Map对象。Map对象中的每个条目由UDT的完全限定SQL名称和该UDT的SQLData实现的Class对象组成。可能为null
    • getMaxFieldSize

      public int getMaxFieldSize() throws SQLException
      检索可用于此RowSet对象的列值的最大字节数。此限制仅适用于保存以下类型值的列:BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR。如果超出限制,多余的数据将被静默丢弃。
      返回:
      表示当前最大列大小限制的int;零表示没有限制
      抛出:
      SQLException - 如果在内部确定列大小的最大限制时发生错误
    • setMaxFieldSize

      public void setMaxFieldSize(int max) throws SQLException
      将可用于此RowSet对象的列值的最大字节数设置为给定的数字。此限制仅适用于保存以下类型值的列:BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR。如果超出限制,多余的数据将被静默丢弃。为了最大可移植性,建议使用大于256的值。
      参数:
      max - 表示新最大列大小限制的int;零表示没有限制
      抛出:
      SQLException - 如果(1)在内部设置列大小的最大限制时发生错误或(2)设置小于0的大小
    • getMaxRows

      public int getMaxRows() throws SQLException
      检索此RowSet对象可能包含的最大行数。如果超出此限制,多余的行将被静默丢弃。
      返回:
      表示当前最大行数的int;零表示没有限制
      抛出:
      SQLException - 如果在内部确定Rowset对象可以包含的行数的最大限制时发生错误
    • setMaxRows

      public void setMaxRows(int max) throws SQLException
      将此RowSet对象可能包含的最大行数设置为给定的数字。如果超出此限制,多余的行将被静默丢弃。
      参数:
      max - 表示当前最大行数的int;零表示没有限制
      抛出:
      SQLException - 如果在内部设置JDBC RowSet对象可以包含的行数的最大限制时发生错误;或者如果max小于0;或者如果max小于RowSetfetchSize
    • setEscapeProcessing

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

      注意:由于通常在调用此方法之前已解析PreparedStatement对象,因此禁用准备语句的转义处理可能不会产生任何效果。

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

      public int getQueryTimeout() throws SQLException
      检索驱动程序将等待查询执行的最大秒数。如果超过限制,将抛出SQLException
      返回:
      当前查询超时限制(以秒为单位);零表示没有限制
      抛出:
      SQLException - 如果在确定查询超时值时发生错误
    • setQueryTimeout

      public void setQueryTimeout(int seconds) throws SQLException
      设置驱动程序将等待查询执行的最大秒数为给定数字。如果超过限制,将抛出SQLException
      参数:
      seconds - 新的查询超时限制(以秒为单位);零表示没有限制;必须不小于零
      抛出:
      SQLException - 如果设置查询超时或查询超时值小于0时发生错误
    • getShowDeleted

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

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

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

      public void setShowDeleted(boolean value) throws SQLException
      将属性showDeleted设置为给定的boolean值,确定已标记为删除的行是否出现在当前行集中。
      参数:
      value - 如果应显示已删除的行,则为true;否则为false
      抛出:
      SQLException - 如果设置已删除的行是否可见时发生错误
      另请参阅:
    • getEscapeProcessing

      public boolean getEscapeProcessing() throws SQLException
      确定此RowSet对象是否启用了转义处理。
      返回:
      如果启用了转义处理,则返回true;否则返回false
      抛出:
      SQLException - 如果确定是否启用了转义处理时发生错误,或者如果内部转义处理触发器尚未启用
    • setFetchDirection

      public void setFetchDirection(int direction) throws SQLException
      给驱动程序提供关于此RowSet对象中行将被处理的方向的性能提示。驱动程序可能会忽略此提示。

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

      此方法仅适用于连接到使用JDBC驱动程序的数据库时的RowSet对象。

      RowSet对象可以随时使用此方法更改其获取方向设置。

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

      public int getFetchDirection() throws SQLException
      检索此RowSet对象的当前获取方向设置。默认类型为ResultSet.FETCH_FORWARD
      返回:
      ResultSet.FETCH_FORWARDResultSet.FETCH_REVERSEResultSet.FETCH_UNKNOWN之一
      抛出:
      SQLException - 如果确定获取行的当前获取方向时发生错误
      另请参阅:
    • setFetchSize

      public void setFetchSize(int rows) throws SQLException
      将此RowSet对象的获取大小设置为给定的行数。获取大小为JDBC技术启用的驱动程序(“JDBC驱动程序”)提供了一个提示,指示当此RowSet对象需要更多行时应从数据库获取的行数。如果指定的获取大小为零,则驱动程序将忽略该值,并可以自行决定获取大小应该是多少。

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

      此方法仅适用于连接到使用JDBC驱动程序的数据库时的RowSet对象。对于像JdbcRowSet这样的已连接RowSet实现,此方法对底层JDBC驱动程序具有直接和即时的影响。

      RowSet对象可以随时使用此方法更改其获取大小设置。

      对于像CachedRowSet这样在断开连接环境中运行的RowSet实现,正在使用的SyncProvider对象可以利用获取大小来轮询数据源,并检索不超过获取大小的行数,这些行数可能形成原始查询返回的实际行的子集。这是由断开连接的RowSet对象所使用的特定SyncProvider对象确定的实现差异。

      参数:
      rows - 要获取的行数;0表示让驱动程序决定最佳获取大小;必须不小于0,也不能超过允许的此RowSet对象的最大行数(通过调用方法getMaxRows()返回的数字)
      抛出:
      SQLException - 如果指定的获取大小小于0或超过最大行数限制
      另请参阅:
    • getFetchSize

      public int getFetchSize() throws SQLException
      返回此RowSet对象的获取大小。默认值为零。
      返回:
      当此RowSet对象需要从数据库获取更多行时建议的获取大小行数
      抛出:
      SQLException - 如果确定当前获取大小的行数时发生错误
      另请参阅:
    • getConcurrency

      public int getConcurrency() throws SQLException
      返回此RowSet对象的并发性。连接和断开连接的RowSet对象的默认值均为CONCUR_UPDATABLE

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

      返回:
      RowSet对象的并发类型,必须是以下之一:ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE
      抛出:
      SQLException - 如果获取此RowSet对象的并发性时发生错误
      另请参阅:
    • 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返回的数组中的第二个元素。

      请注意,由于数组中元素的编号从零开始,因此与占位符参数编号parameterIndex对应的数组元素是parameterIndex -1。

      参数:
      parameterIndex - 要设置的RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      sqlType - 在Types类中定义的SQL类型代码之一的int。如果提供了非标准的sqlType,此方法不会抛出SQLException。这允许对非标准SQL类型进行隐式支持。
      抛出:
      SQLException - 如果发生数据库访问错误或给定的参数索引超出范围
      参见:
    • setNull

      public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException
      将指定的参数设置为SQL NULL。尽管此版本的setNull方法用于用户定义和REF参数,但此方法可用于为任何JDBC类型设置空参数。以下是用户定义的类型: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返回的数组中的第二个元素。

      请注意,由于数组中元素的编号从零开始,因此与占位符参数编号parameterIndex对应的数组元素是parameterIndex -1。

      参数:
      parameterIndex - 要设置的RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      sqlType - 来自java.sql.Types的值
      typeName - SQL用户定义类型的完全限定名称,如果参数不是用户定义类型或REF值,则将被忽略
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • 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 - 如果发生错误或参数索引超出范围
      参见:
    • setBytes

      public void setBytes(int parameterIndex, byte[] x) throws SQLException
      将指定的参数设置为字节数组。当驱动程序将其发送到数据库时,将其转换为SQL VARBINARYLONGVARBINARY值(取决于参数相对于驱动程序对VARBINARY值的限制的大小)。

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

      注意:JdbcRowSet不需要populate方法,因为在此类中未定义。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 参数值
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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对象。请注意,因为数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素为parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 参数值
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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对象。

      请注意,因为数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素为parameterIndex -1。

      参数:
      parameterIndex - 要设置的占位符参数在此RowSet对象命令中的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 一个java.sql.Time对象,将其设置为占位符参数parameterIndex的值
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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对象。请注意,因为数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素为parameterIndex -1。

      参数:
      parameterIndex - 要设置的占位符参数在此RowSet对象命令中的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 一个java.sql.Timestamp对象
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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设置的值。第三个元素是指示传递给此方法的流为ASCII流的内部BaseRowSet常量。参数编号由方法getParams返回的数组中元素的位置表示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果要设置的输入流是第二个占位符参数的值,则包含它的数组将是由getParams返回的数组中的第二个元素。

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

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

      public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
      将此RowSet对象命令中的指定参数设置为给定的输入流。当将非常大的ASCII值输入到LONGVARCHAR参数时,通过java.io.InputStream发送可能更实际。将根据需要从流中读取数据,直到达到文件末尾。JDBC驱动程序将执行从ASCII到数据库char格式的任何必要转换。

      注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自定义子类。

      注意:请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setAsciiStream版本。

      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      x - 包含ASCII参数值的Java输入流
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • 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返回的数组中的第二个元素。

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

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

      public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
      将此RowSet对象命令中的指定参数设置为给定的输入流。当向LONGVARBINARY参数输入非常大的二进制值时,通过java.io.InputStream对象发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。

      注意: 此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意: 请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setBinaryStream版本。

      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      x - 包含二进制参数值的java输入流
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setUnicodeStream

      @Deprecated public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
      Deprecated.
      getCharacterStream should be used in its place
      将指定的参数设置为给定的java.io.InputStream对象,该对象将具有指定的字节数。将从流中读取内容并发送到数据库。如果读取并发送到数据库的字节数与length不相等,则此方法会抛出SQLException

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

      注意: 此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      此方法已被弃用;应使用getCharacterStream方法代替。

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

      parameterIndex对应的数组元素是元素编号 parameterIndex -1。

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

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

      当向LONGVARCHAR参数输入非常大的Unicode值时,通过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返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果要设置的读取器是第二个占位符参数的值,则包含它的数组将是由getParams返回的数组中的第二个元素。

      parameterIndex对应的数组元素是元素编号 parameterIndex -1。

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

      public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
      将此RowSet对象命令中的指定参数设置为给定的Reader对象。当向LONGVARCHAR参数输入非常大的UNICODE值时,通过java.io.Reader对象发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。JDBC驱动程序将执行从UNICODE到数据库char格式的任何必要转换。

      注意: 此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意: 请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setCharacterStream版本。

      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      reader - 包含Unicode数据的java.io.Reader对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • 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返回的数组中的第二个元素。

      请注意,因为数组中元素的编号从零开始,因此与占位符参数编号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 - 如果发生错误或参数索引超出范围
      参见:
    • setObject

      public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
      将指定的参数值设置为给定的Object值。此方法类似于setObject(int parameterIndex, Object x, int targetSqlType, int scale),只是它假定比例为零。

      此方法设置的参数值将在调用execute方法时作为此RowSet对象的命令中的适当参数提供。任何扩展此类并实现一个或多个标准JSR-114 RowSet接口的类必须提供诸如executepopulate之类的方法。

      注意:JdbcRowSet不需要populate方法,因为在此类中未定义。

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

      请注意,因为数组中元素的编号从零开始,因此与占位符参数编号parameterIndex对应的数组元素是元素编号parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须是1或更大
      x - 包含输入参数值的Object;必须是Object类型
      targetSqlType - 要发送到数据库的SQL类型(如java.sql.Types中定义)。如果提供了非标准的targetSqlType,此方法不会抛出SQLException。这允许对非标准SQL类型进行隐式支持。
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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方法后,将返回当前命令参数的对象数组,其中包括为占位符参数编号parameterIndex设置的Object。请注意,因为数组中元素的编号从零开始,因此与占位符参数编号parameterIndex对应的数组元素是元素编号parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须是1或更大
      x - 包含输入参数值的对象
      抛出:
      SQLException - 如果发生错误、参数索引超出范围或设置的对象的实现中存在歧义
      参见:
    • 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方法后,将返回当前命令参数的对象数组,其中包括为占位符参数编号parameterIndex设置的Ref对象。请注意,因为数组中元素的编号从零开始,因此与占位符参数编号parameterIndex对应的数组元素是元素编号parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      ref - 表示SQL REF值的Ref对象;不能为空
      抛出:
      SQLException - 如果发生错误;参数索引超出范围或Ref对象为null;或Ref对象返回null基本类型名称。
      参见:
    • 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方法将返回当前命令参数的对象数组,其中将包括为占位符参数编号parameterIndex设置的Blob对象。请注意,由于数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素是元素编号parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 表示SQL BLOB值的Blob对象
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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方法将返回当前命令参数的对象数组,其中将包括为占位符参数编号parameterIndex设置的Clob对象。请注意,由于数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素是元素编号parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 表示SQL CLOB值的Clob对象;不能为空
      抛出:
      SQLException - 如果发生错误;参数索引超出范围或Clob为null
      参见:
    • 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方法将返回当前命令参数的对象数组,其中将包括为占位符参数编号parameterIndex设置的Array对象。请注意,由于数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素是元素编号parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      array - 表示SQL ARRAY值的Array对象;不能为空。传递给此方法的Array对象必须对所有getArray()方法调用返回非null对象。null值将导致抛出SQLException
      抛出:
      SQLException - 如果发生错误;参数索引超出范围或ARRAY为null
      参见:
    • 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返回的数组中元素的位置表示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果要设置的日期是第二个占位符参数的值,则包含它的数组将是getParams返回的数组中的第二个元素。

      请注意,由于数组中元素的编号从零开始,因此对应于占位符参数编号parameterIndex的数组元素是parameterIndex -1。

      参数:
      parameterIndex - 要设置的此RowSet对象命令中占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 表示SQL DATE值的java.sql.Date对象
      cal - 在构造日期时要使用的java.util.Calendar对象
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • 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返回的数组中元素的位置表示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果要设置的时间是第二个占位符参数的值,则包含它的数组将是由getParams返回的数组中的第二个元素。

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

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

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

      当DBMS不存储时区信息时,驱动程序将使用给定的Calendar对象来构造要发送到数据库的SQL TIMESTAMP值。使用Calendar对象,驱动程序可以计算考虑自定义时区的时间戳。如果未指定Calendar对象,则驱动程序将使用运行应用程序的虚拟机的时区。

      此方法设置的参数值将在调用execute方法时作为此RowSet对象的命令中的适当参数提供。任何扩展此类并实现一个或多个标准JSR-114 RowSet接口的类必须提供诸如executepopulate等方法。

      注意:JdbcRowSet不需要populate方法,因为在此类中未定义。

      在调用此版本的setTimestamp后调用getParams方法将返回一个包含已设置的参数值的数组。在该数组中,表示使用此方法设置的值的元素本身将是一个数组。该数组的第一个元素是给定的java.sql.Timestamp对象。第二个元素是为cal设置的值。参数编号由方法getParams返回的数组中元素的位置表示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果要设置的时间戳是第二个占位符参数的值,则包含它的数组将是由getParams返回的数组中的第二个元素。

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

      参数:
      parameterIndex - 要设置的此RowSet对象命令中的占位符参数的序号。第一个参数为1,第二个为2,依此类推;必须为1或更大
      x - 一个java.sql.Timestamp对象
      cal - 驱动程序可以使用的java.util.Calendar对象来构造时间戳
      抛出:
      SQLException - 如果发生错误或参数索引超出范围
      参见:
    • clearParameters

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

      一般来说,参数值将保持在此RowSet对象命令的重复使用中。使用setter方法设置参数值会自动清除指定参数的值,并用新指定的值替换它。

      此方法由setCommand方法在内部调用以清除为上一个命令设置的所有参数。

      此外,此方法与initParams方法不同,因为它保留了RowSet对象的模式。

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

      public Object[] getParams() throws SQLException
      检索一个包含已为此RowSet对象命令设置的参数值(包括对象和基本类型)的数组,并在未设置所有参数时抛出一个SQLException对象。在将命令发送到DBMS执行之前,这些参数将替换BaseRowSet类扩展的RowSet实现的命令中的占位符参数的PreparedStatement对象。

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

      注意:类型为ArrayBlobClobRef的存储参数值分别作为SerialArraySerialBlobSerialClobSerialRef返回。

      返回:
      包含可能在此RowSet对象命令中设置的参数值的Object实例数组;如果未设置任何参数,则为空数组
      抛出:
      SQLException - 如果检索此RowSet对象的参数对象数组时发生错误或未设置所有参数
    • setNull

      public void setNull(String parameterName, int sqlType) throws SQLException
      将指定的参数设置为SQL NULL

      注意:必须指定参数的SQL类型。

      参数:
      parameterName - 参数的名称
      sqlType - 在java.sql.Types中定义的SQL类型代码
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    • setNull

      public void setNull(String parameterName, int sqlType, String typeName) throws SQLException
      将指定的参数设置为SQL NULL。应该使用此版本的setNull方法用于用户定义类型和REF类型参数。用户定义类型的示例包括:STRUCT、DISTINCT、JAVA_OBJECT和命名数组类型。

      注意:为了可移植,应用程序在指定NULL用户定义或REF参数时必须提供SQL类型代码和完全限定的SQL类型名称。对于用户定义类型,名称是参数本身的类型名称。对于REF参数,名称是引用类型的类型名称。如果JDBC驱动程序不需要类型代码或类型名称信息,则可以忽略它。尽管此方法旨在用于用户定义和Ref参数,但可以用于设置任何JDBC类型的空参数。如果参数没有用户定义或REF类型,则给定的typeName将被忽略。

      参数:
      parameterName - 参数的名称
      sqlType - 来自java.sql.Types的值
      typeName - SQL用户定义类型的完全限定名称;如果参数不是用户定义类型或SQL REF值,则忽略
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    • setBoolean

      public void setBoolean(String parameterName, boolean x) throws SQLException
      将指定的参数设置为给定的Java boolean值。当驱动程序将其发送到数据库时,将其转换为SQL BITBOOLEAN值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setByte

      public void setByte(String parameterName, byte x) throws SQLException
      将指定的参数设置为给定的Java byte值。当驱动程序将其发送到数据库时,将其转换为SQL TINYINT值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setShort

      public void setShort(String parameterName, short x) throws SQLException
      将指定的参数设置为给定的Java short值。当驱动程序将其发送到数据库时,将其转换为SQL SMALLINT值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setInt

      public void setInt(String parameterName, int x) throws SQLException
      将指定的参数设置为给定的Java int值。当驱动程序将其发送到数据库时,将其转换为SQL INTEGER值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setLong

      public void setLong(String parameterName, long x) throws SQLException
      将指定的参数设置为给定的Java long值。当驱动程序将其发送到数据库时,将其转换为SQL BIGINT值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setFloat

      public void setFloat(String parameterName, float x) throws SQLException
      将指定的参数设置为给定的Java float值。当驱动程序将其发送到数据库时,将其转换为SQL FLOAT值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setDouble

      public void setDouble(String parameterName, double x) throws SQLException
      将指定的参数设置为给定的Java double值。当驱动程序将其发送到数据库时,将其转换为SQL DOUBLE值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setBigDecimal

      public void setBigDecimal(String parameterName, BigDecimal x) throws SQLException
      将指定的参数设置为给定的java.math.BigDecimal值。当驱动程序将其发送到数据库时,将其转换为SQL NUMERIC值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setString

      public void setString(String parameterName, String x) throws SQLException
      将指定的参数设置为给定的Java String值。当驱动程序将其发送到数据库时,将其转换为SQL VARCHARLONGVARCHAR值(取决于参数相对于驱动程序对VARCHAR值的限制的大小)。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setBytes

      public void setBytes(String parameterName, byte[] x) throws SQLException
      将指定的参数设置为给定的Java字节数组。当驱动程序将其发送到数据库时,将其转换为SQL VARBINARYLONGVARBINARY值(取决于参数相对于驱动程序对VARBINARY值的限制的大小)。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setTimestamp

      public void setTimestamp(String parameterName, Timestamp x) throws SQLException
      将指定的参数设置为给定的java.sql.Timestamp值。当驱动程序将其发送到数据库时,将其转换为SQL TIMESTAMP值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setAsciiStream

      public void setAsciiStream(String parameterName, InputStream x, int length) throws SQLException
      将指定的参数设置为给定的输入流,该输入流将具有指定的字节数。当向LONGVARCHAR参数输入非常大的ASCII值时,通过java.io.InputStream发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。JDBC驱动程序将执行从ASCII到数据库字符格式的任何必要转换。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      参数:
      parameterName - 参数的名称
      x - 包含ASCII参数值的Java输入流
      length - 流中的字节数
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    • setBinaryStream

      public void setBinaryStream(String parameterName, InputStream x, int length) throws SQLException
      将指定的参数设置为给定的输入流,该输入流将具有指定的字节数。当向LONGVARBINARY参数输入非常大的二进制值时,通过java.io.InputStream对象发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      参数:
      parameterName - 参数的名称
      x - 包含二进制参数值的Java输入流
      length - 流中的字节数
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    • setCharacterStream

      public void setCharacterStream(String parameterName, Reader reader, int length) throws SQLException
      将指定的参数设置为给定的Reader对象,该对象的长度为给定的字符数。当向LONGVARCHAR参数输入非常大的UNICODE值时,通过java.io.Reader对象发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。JDBC驱动程序将执行从UNICODE到数据库字符格式的任何必要转换。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      参数:
      parameterName - 参数的名称
      reader - 包含用作指定参数的UNICODE数据的java.io.Reader对象
      length - 流中的字符数
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    • setAsciiStream

      public void setAsciiStream(String parameterName, InputStream x) throws SQLException
      将指定的参数设置为给定的输入流。当向LONGVARCHAR参数输入非常大的ASCII值时,通过java.io.InputStream发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。JDBC驱动程序将执行从ASCII到数据库字符格式的任何必要转换。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意:请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setAsciiStream版本。

      参数:
      parameterName - 参数的名称
      x - 包含ASCII参数值的Java输入流
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6起
    • setBinaryStream

      public void setBinaryStream(String parameterName, InputStream x) throws SQLException
      将指定的参数设置为给定的输入流。当向LONGVARBINARY参数输入非常大的二进制值时,通过java.io.InputStream对象发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意:请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setBinaryStream版本。

      参数:
      parameterName - 参数的名称
      x - 包含二进制参数值的Java输入流
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6起
    • setCharacterStream

      public void setCharacterStream(String parameterName, Reader reader) throws SQLException
      将指定的参数设置为给定的Reader对象。当向LONGVARCHAR参数输入非常大的UNICODE值时,通过java.io.Reader对象发送可能更实际。数据将根据需要从流中读取,直到达到文件结尾。JDBC驱动程序将执行从UNICODE到数据库字符格式的任何必要转换。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意:请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setCharacterStream版本。

      参数:
      parameterName - 参数的名称
      reader - 包含Unicode数据的java.io.Reader对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6起
    • setNCharacterStream

      public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
      将此RowSet对象的命令中的指定参数设置为Reader对象。 Reader读取数据直到达到文件结尾。驱动程序将执行从Java字符格式到数据库中的国家字符集的必要转换。

      注意:此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意:请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setNCharacterStream版本。

      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      value - 参数值
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误;或在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6起
    • setObject

      public void setObject(String parameterName, Object x, int targetSqlType, int scale) throws SQLException
      使用给定对象设置指定参数的值。第二个参数必须是对象类型;对于整数值,应使用java.lang等效对象。

      给定的Java对象将在发送到数据库之前转换为给定的targetSqlType。如果对象具有自定义映射(属于实现接口SQLData的类),JDBC驱动程序应调用方法SQLData.writeSQL将其写入SQL数据流。另一方面,如果对象属于实现RefBlobClobNClobStructjava.net.URLArray的类,驱动程序应将其作为相应SQL类型的值传递给数据库。

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

      参数:
      parameterName - 参数的名称
      x - 包含输入参数值的对象
      targetSqlType - 要发送到数据库的SQL类型(如在java.sql.Types中定义)。scale参数可能进一步限定此类型。
      scale - 对于java.sql.Types.DECIMAL或java.sql.Types.NUMERIC类型,这是小数点后的位数。对于所有其他类型,此值将被忽略。
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果targetSqlTypeARRAYBLOBCLOBDATALINKJAVA_OBJECTNCHARNCLOBNVARCHARLONGNVARCHARREFROWIDSQLXMLSTRUCT数据类型,且JDBC驱动程序不支持此数据类型
      参见:
    • setObject

      public void setObject(String parameterName, Object x, int targetSqlType) throws SQLException
      设置指定参数的值为给定对象。此方法类似于上面的setObject方法,但假定小数位数为零。
      参数:
      parameterName - 参数的名称
      x - 包含输入参数值的对象
      targetSqlType - 要发送到数据库的SQL类型(如在java.sql.Types中定义)
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果targetSqlTypeARRAYBLOBCLOBDATALINKJAVA_OBJECTNCHARNCLOBNVARCHARLONGNVARCHARREFROWIDSQLXMLSTRUCT数据类型,且JDBC驱动程序不支持此数据类型
      参见:
    • setObject

      public void setObject(String parameterName, Object x) throws SQLException
      设置指定参数的值为给定对象。第二个参数必须是Object类型;因此,应使用内置类型的java.lang等效对象。

      JDBC规范指定了Java Object类型到SQL类型的标准映射。给定的参数将在发送到数据库之前转换为相应的SQL类型。

      请注意,此方法可用于通过使用特定于驱动程序的Java类型传递特定于数据库的抽象数据类型。如果对象是实现SQLData接口的类,JDBC驱动程序应调用SQLData.writeSQL方法将其写入SQL数据流。另一方面,如果对象是实现RefBlobClobNClobStructjava.net.URLArray的类,驱动程序应将其作为相应SQL类型的值传递给数据库。

      如果存在歧义,例如,如果对象是实现上述多个接口的类,则此方法将引发异常。

      参数:
      parameterName - 参数的名称
      x - 包含输入参数值的对象
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的CallableStatement上调用,或者给定的Object参数存在歧义
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setBlob

      public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
      将指定参数设置为InputStream对象。 InputStream必须包含长度指定的字符数,否则在执行PreparedStatement时将生成SQLException。此方法与setBinaryStream (int, InputStream, int)方法不同,因为它通知驱动程序参数值应作为BLOB发送到服务器。当使用setBinaryStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARBINARY还是BLOB发送到服务器
      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      inputStream - 包含要设置参数值的数据的对象
      length - 参数数据中的字节数
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的PreparedStatement上调用,如果parameterIndex不对应于SQL语句中的参数标记,指定的长度小于零,或者InputStream中的字节数与指定的长度不匹配
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setBlob

      public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
      将指定参数设置为InputStream对象。此方法与setBinaryStream (int, InputStream)方法不同,因为它通知驱动程序参数值应作为BLOB发送到服务器。当使用setBinaryStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARBINARY还是BLOB发送到服务器

      注意: 请查阅您的JDBC驱动程序文档,以确定使用接受长度参数的setBlob版本是否更有效。

      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      inputStream - 包含要设置参数值的数据的对象
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的PreparedStatement上调用,或者parameterIndex不对应于SQL语句中的参数标记
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setBlob

      public void setBlob(String parameterName, InputStream inputStream, long length) throws SQLException
      将指定参数设置为InputStream对象。 Inputstream必须包含长度指定的字符数,否则在执行CallableStatement时将生成SQLException。此方法与setBinaryStream (int, InputStream, int)方法不同,因为它通知驱动程序参数值应作为BLOB发送到服务器。当使用setBinaryStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARBINARY还是BLOB发送到服务器
      参数:
      parameterName - 要设置的参数的名称,第二个为2,...
      inputStream - 包含要设置参数值的数据的对象
      length - 参数数据中的字节数
      抛出:
      SQLException - 如果parameterIndex不对应于SQL语句中的参数标记,指定的长度小于零;如果InputStream中的字节数与指定的长度不匹配;如果发生数据库访问错误,或者在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setBlob

      public void setBlob(String parameterName, Blob x) throws SQLException
      将指定参数设置为给定的java.sql.Blob对象。驱动程序在将其发送到数据库时将其转换为SQL BLOB值。
      参数:
      parameterName - 参数的名称
      x - 映射到SQL BLOB值的Blob对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setBlob

      public void setBlob(String parameterName, InputStream inputStream) throws SQLException
      将指定参数设置为InputStream对象。此方法与setBinaryStream (int, InputStream)方法不同,因为它通知驱动程序参数值应作为BLOB发送到服务器。当使用setBinaryStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARBINARY还是BLOB发送到服务器

      注意: 请查阅您的JDBC驱动程序文档,以确定使用接受长度参数的setBlob版本是否更有效。

      参数:
      parameterName - 参数的名称
      inputStream - 包含要设置参数值的数据的对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setClob

      public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
      将指定的参数设置为Reader对象。读取器必须包含长度指定的字符数,否则在执行PreparedStatement时将生成SQLException。此方法与setCharacterStream (int, Reader, int)方法不同,因为它通知驱动程序参数值应作为CLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARCHAR还是CLOB发送到服务器
      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      reader - 包含要设置参数值的数据的对象
      length - 参数数据中的字符数
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的PreparedStatement上调用,如果parameterIndex不对应于SQL语句中的参数标记,或者指定的长度小于零
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setClob

      public void setClob(int parameterIndex, Reader reader) throws SQLException
      将指定的参数设置为Reader对象。此方法与setCharacterStream (int, Reader)方法不同,因为它通知驱动程序参数值应作为CLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARCHAR还是CLOB发送到服务器

      注意: 请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setClob版本。

      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      reader - 包含要设置参数值的数据的对象
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的PreparedStatement上调用,或者parameterIndex不对应于SQL语句中的参数标记
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setClob

      public void setClob(String parameterName, Reader reader, long length) throws SQLException
      将指定的参数设置为Reader对象。读取器必须包含长度指定的字符数,否则在执行CallableStatement时将生成SQLException。此方法与setCharacterStream (int, Reader, int)方法不同,因为它通知驱动程序参数值应作为CLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARCHAR还是CLOB发送到服务器
      参数:
      parameterName - 要设置的参数的名称
      reader - 包含要设置参数值的数据的对象
      length - 参数数据中的字符数
      抛出:
      SQLException - 如果parameterIndex不对应于SQL语句中的参数标记;如果指定的长度小于零;发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setClob

      public void setClob(String parameterName, Clob x) throws SQLException
      将指定的参数设置为给定的java.sql.Clob对象。驱动程序在将其发送到数据库时将其转换为SQL CLOB值。
      参数:
      parameterName - 参数的名称
      x - 映射到SQL CLOB值的Clob对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setClob

      public void setClob(String parameterName, Reader reader) throws SQLException
      将指定的参数设置为Reader对象。此方法与setCharacterStream (int, Reader)方法不同,因为它通知驱动程序参数值应作为CLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应作为LONGVARCHAR还是CLOB发送到服务器

      注意: 请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setClob版本。

      参数:
      parameterName - 参数的名称
      reader - 包含要设置参数值的数据的对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自从:
      1.6
    • setDate

      public void setDate(String parameterName, Date x) throws SQLException
      将指定的参数设置为给定的java.sql.Date值,使用运行应用程序的虚拟机的默认时区。驱动程序在将其发送到数据库时将其转换为SQL DATE值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setDate

      public void setDate(String parameterName, Date x, Calendar cal) throws SQLException
      将指定的参数设置为给定的java.sql.Date值,使用给定的Calendar对象。驱动程序使用Calendar对象构造SQL DATE值,然后将其发送到数据库。使用Calendar对象,驱动程序可以根据自定义时区计算日期。如果未指定Calendar对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。
      参数:
      parameterName - 参数的名称
      x - 参数值
      cal - 驱动程序将用于构造日期的Calendar对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setTime

      public void setTime(String parameterName, Time x) throws SQLException
      将指定的参数设置为给定的java.sql.Time值。驱动程序在将其发送到数据库时将其转换为SQL TIME值。
      参数:
      parameterName - 参数的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setTime

      public void setTime(String parameterName, Time x, Calendar cal) throws SQLException
      将指定的参数设置为给定的java.sql.Time值,使用给定的Calendar对象。驱动程序使用Calendar对象构造SQL TIME值,然后将其发送到数据库。使用Calendar对象,驱动程序可以根据自定义时区计算时间。如果未指定Calendar对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。
      参数:
      parameterName - 参数的名称
      x - 参数值
      cal - 驱动程序将用于构造时间的Calendar对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setTimestamp

      public void setTimestamp(String parameterName, Timestamp x, Calendar cal) throws SQLException
      将指定的参数设置为给定的java.sql.Timestamp值,使用给定的Calendar对象。驱动程序使用Calendar对象来构造SQL TIMESTAMP值,然后将其发送到数据库。使用Calendar对象,驱动程序可以根据自定义时区计算时间戳。如果未指定Calendar对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。
      参数:
      parameterName - 参数的名称
      x - 参数值
      cal - 驱动程序将用于构造时间戳的Calendar对象
      抛出:
      SQLException - 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      参见:
    • setSQLXML

      public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
      将指定的参数设置为给定的java.sql.SQLXML对象。驱动程序在将其发送到数据库时将其转换为SQL XML值。
      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      xmlObject - 映射SQL XML值的SQLXML对象
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的结果集上调用,java.xml.transform.ResultWriterOutputStream未关闭SQLXML对象,或处理XML值时出现错误。异常的getCause方法可能提供更详细的异常,例如,如果流不包含有效的XML。
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setSQLXML

      public void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException
      将指定的参数设置为给定的java.sql.SQLXML对象。驱动程序在将其发送到数据库时将其转换为SQL XML值。
      参数:
      parameterName - 参数的名称
      xmlObject - 映射SQL XML值的SQLXML对象
      抛出:
      SQLException - 如果发生数据库访问错误,此方法在关闭的结果集上调用,java.xml.transform.ResultWriterOutputStream未关闭SQLXML对象,或处理XML值时出现错误。异常的getCause方法可能提供更详细的异常,例如,如果流不包含有效的XML。
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setRowId

      public void setRowId(int parameterIndex, RowId x) throws SQLException
      将指定的参数设置为给定的java.sql.RowId对象。驱动程序在将其发送到数据库时将其转换为SQL ROWID
      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setRowId

      public void setRowId(String parameterName, RowId x) throws SQLException
      将指定的参数设置为给定的java.sql.RowId对象。驱动程序在将其发送到数据库时将其转换为SQL ROWID
      参数:
      parameterName - 要设置的列的名称
      x - 参数值
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setNString

      public void setNString(int parameterIndex, String value) throws SQLException
      将指定的参数设置为给定的String对象。驱动程序在将其发送到数据库时将其转换为SQL NCHARNVARCHARLONGNVARCHAR值(取决于参数相对于驱动程序对NVARCHAR值的限制的大小)。
      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      value - 参数值
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;或者发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setNString

      public void setNString(String parameterName, String value) throws SQLException
      将指定的参数设置为给定的String对象。驱动程序在将其发送到数据库时将其转换为SQL NCHARNVARCHARLONGNVARCHAR
      参数:
      parameterName - 要设置的列的名称
      value - 参数值
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;或者发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setNCharacterStream

      public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
      将指定的参数设置为Reader对象。 Reader读取数据直到达到文件末尾。驱动程序将Java字符格式转换为数据库中的国家字符集。
      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      value - 参数值
      length - 参数数据中的字符数。
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;或者发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setNCharacterStream

      public void setNCharacterStream(String parameterName, Reader value, long length) throws SQLException
      将指定的参数设置为Reader对象。 Reader读取数据直到达到文件末尾。驱动程序将Java字符格式转换为数据库中的国家字符集。
      参数:
      parameterName - 要设置的列的名称
      value - 参数值
      length - 参数数据中的字符数。
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;或者发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自:
      1.6
    • setNCharacterStream

      public void setNCharacterStream(String parameterName, Reader value) throws SQLException
      将指定的参数设置为Reader对象。 Reader读取数据直到达到文件末尾。驱动程序将Java字符格式转换为数据库中的国家字符集。

      注意: 此流对象可以是标准的Java流对象,也可以是实现标准接口的自定义子类。

      注意: 请查阅您的JDBC驱动程序文档,以确定是否更有效地使用带有长度参数的setNCharacterStream版本。

      参数:
      parameterName - 参数的名称
      value - 参数的值
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误;或者在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setNClob

      public void setNClob(String parameterName, NClob value) throws SQLException
      将指定的参数设置为java.sql.NClob对象。该对象实现了java.sql.NClob接口。此NClob对象映射到SQL NCLOB
      参数:
      parameterName - 要设置的列的名称
      value - 参数的值
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;或者发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setNClob

      public void setNClob(String parameterName, Reader reader, long length) throws SQLException
      将指定的参数设置为Reader对象。reader必须包含由长度指定的字符数,否则在执行CallableStatement时将生成SQLException。此方法与setCharacterStream (int, Reader, int)方法不同,因为它通知驱动程序应将参数值作为NCLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应该作为LONGNVARCHAR还是NCLOB发送到服务器
      参数:
      parameterName - 要设置的参数的名称
      reader - 包含要设置参数值的数据的对象
      length - 参数数据中的字符数
      抛出:
      SQLException - 如果parameterIndex不对应于SQL语句中的参数标记;如果指定的长度小于零;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误或者在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setNClob

      public void setNClob(String parameterName, Reader reader) throws SQLException
      将指定的参数设置为Reader对象。此方法与setCharacterStream (int, Reader)方法不同,因为它通知驱动程序应将参数值作为NCLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应该作为LONGNVARCHAR还是NCLOB发送到服务器

      注意: 请查阅您的JDBC驱动程序文档,以确定是否使用带有长度参数的setNClob版本可能更有效率。

      参数:
      parameterName - 参数的名称
      reader - 包含要设置参数值的数据的对象
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误或者在关闭的CallableStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setNClob

      public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
      将指定的参数设置为Reader对象。该reader必须包含由长度指定的字符数,否则在执行PreparedStatement时将生成SQLException。此方法与setCharacterStream (int, Reader, int)方法不同,因为它通知驱动程序应将参数值作为NCLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应该作为LONGNVARCHAR还是NCLOB发送到服务器
      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      reader - 包含要设置参数值的数据的对象
      length - 参数数据中的字符数
      抛出:
      SQLException - 如果parameterIndex不对应于SQL语句中的参数标记;如果指定的长度小于零;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误或者在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setNClob

      public void setNClob(int parameterIndex, NClob value) throws SQLException
      将指定的参数设置为java.sql.NClob对象。当驱动程序将其发送到数据库时,将此值转换为SQL NCLOB值。
      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      value - 参数的值
      抛出:
      SQLException - 如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;或者发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setNClob

      public void setNClob(int parameterIndex, Reader reader) throws SQLException
      将指定的参数设置为Reader对象。此方法与setCharacterStream (int, Reader)方法不同,因为它通知驱动程序应将参数值作为NCLOB发送到服务器。当使用setCharacterStream方法时,驱动程序可能需要额外工作来确定参数数据应该作为LONGNVARCHAR还是NCLOB发送到服务器

      注意: 请查阅您的JDBC驱动程序文档,以确定是否使用带有长度参数的setNClob版本可能更有效率。

      参数:
      parameterIndex - 第一个参数的索引为1,第二个为2,...
      reader - 包含要设置参数值的数据的对象
      抛出:
      SQLException - 如果parameterIndex不对应于SQL语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误或者在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自1.6版本起:
      1.6
    • setURL

      public void setURL(int parameterIndex, URL x) throws SQLException
      将指定的参数设置为给定的java.net.URL值。当驱动程序将其发送到数据库时,将其转换为SQL DATALINK值。
      参数:
      parameterIndex - 第一个参数为1,第二个为2,...
      x - 要设置的java.net.URL对象
      抛出:
      SQLException - 如果发生数据库访问错误或者在关闭的PreparedStatement上调用此方法
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法