javax.sql.rowset.serial

异常
java.lang.Object
  继承者 javax.sql.rowset.serial.SQLOutputImpl
所有已实现的接口:
SQLOutput

public class SQLOutputImpl
     
extends Object
implements SQLOutput

用于将自定义映射的用户定义类型 (UDT) 的属性写回数据库的输出流。驱动程序在内部使用此接口,应用程序员决不能直接调用其方法。

当应用程序调用 PreparedStatement.setObject 方法时,驱动程序将检查要写入的值是否具有自定义映射关系的 UDT。如果是,则在类型映射表中将存在一个条目,该条目包含 Class 对象,用于为此 UDT 实现 SQLData 的类。如果要写入的值是 SQLData 的实例,则驱动程序将创建 SQLOutputImpl 的实例并将其传递给 SQLData.writeSQL 方法。writeSQL 方法依次调用适当的 SQLOutputImpl.writeXXX 方法,从 SQLData 对象以 SQL 用户定义类型的表示形式将数据写入 SQLOutputImpl 输出流。


构造方法摘要
SQLOutputImpl(Vector<?> attributes, Map<String,?> map)
          创建一个新的 SQLOutputImpl 对象,并使用给定的属性向量和类型映射表进行初始化。
 
方法摘要
 void writeArray(Array x)
          将 Java 编程语言中的 Array 对象写入此 SQLOutputImpl 对象。
 void writeAsciiStream(InputStream x)
          将 ASCII 字符流写入此 SQLOutputImpl 对象。
 void writeBigDecimal(BigDecimal x)
          将 Java 编程语言中的 java.math.BigDecimal 对象写入此 SQLOutputImpl 对象。
 void writeBinaryStream(InputStream x)
          将未解释字节流写入此 SQLOutputImpl 对象。
 void writeBlob(Blob x)
          将 Java 编程语言中的 Blob 对象写入此 SQLOutputImpl 对象。
 void writeBoolean(boolean x)
          将 Java 编程语言中的 boolean 写入此 SQLOutputImpl 对象。
 void writeByte(byte x)
          将 Java 编程语言中的 byte 写入此 SQLOutputImpl 对象。
 void writeBytes(byte[] x)
          将 Java 编程语言中的 byte 数组写入此 SQLOutputImpl 对象。
 void writeCharacterStream(Reader x)
          将 Unicode 字符流写入此 SQLOutputImpl 对象。
 void writeClob(Clob x)
          将 Java 编程语言中的 Clob 对象写入此 SQLOutputImpl 对象。
 void writeDate(Date x)
          将 Java 编程语言中的 java.sql.Date 对象写入此 SQLOutputImpl 对象。
 void writeDouble(double x)
          将 Java 编程语言中的 double 写入此 SQLOutputImpl 对象。
 void writeFloat(float x)
          将 Java 编程语言中的 float 写入此 SQLOutputImpl 对象。
 void writeInt(int x)
          将 Java 编程语言中的 int 写入此 SQLOutputImpl 对象。
 void writeLong(long x)
          将 Java 编程语言中的 long 写入此 SQLOutputImpl 对象。
 void writeNClob(NClob x)
          将 SQL NCLOB 值写入流中。
 void writeNString(String x)
          将下一个属性以 Java 编程语言中 String 的形式写入流中。
 void writeObject(SQLData x)
          将包含在给定 SQLData 对象中的数据写入流中。
 void writeRef(Ref x)
          将 Java 编程语言中的 Ref 对象写入此 SQLOutputImpl 对象。
 void writeRowId(RowId x)
          将 SQL ROWID 值写入流中。
 void writeShort(short x)
          将 Java 编程语言中的 short 写入此 SQLOutputImpl 对象。
 void writeSQLXML(SQLXML x)
          将 SQL XML 值写入流中。
 void writeString(String x)
          将 Java 编程语言中的 String 写入此 SQLOutputImpl 对象。
 void writeStruct(Struct x)
          将 Java 编程语言中的 Struct 对象写入此 SQLOutputImpl 对象。
 void writeTime(Time x)
          将 Java 编程语言中的 java.sql.Time 对象写入此 SQLOutputImpl 对象。
 void writeTimestamp(Timestamp x)
          将 Java 编程语言中的 java.sql.Timestamp 对象写入此 SQLOutputImpl 对象。
 void writeURL(URL url)
          将 Java 编程语言中的 java.sql.Type.DATALINK 对象写入此 SQLOutputImpl 对象。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SQLOutputImpl

public SQLOutputImpl(Vector<?> attributes,
                     Map<String,?> map)
              throws SQLException
创建一个新的 SQLOutputImpl 对象,并使用给定的属性向量和类型映射表进行初始化。驱动程序将使用类型映射表来确定要调用的 SQLData.writeSQL 方法。然后,此方法将调用适当的 SQLOutputImpl 写入方法,以便能够将属性写入新输出流。

参数:
attributes - Vector 对象,该对象包含要映射为 Java 编程语言中一个或多个对象的 UDT 属性
map - 包含零个或多个条目的 java.util.Map 对象,其中每个条目包含:1) 给出 UDT 完全限定名的 String 2) 用于定义 UDT 映射方式的 SQLData 实现的 Class 对象
抛出:
SQLException - 如果 attributesmap 的值为 null
方法详细信息

writeString

public void writeString(String x)
                 throws SQLException
将 Java 编程语言中的 String 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL CHARVARCHARLONGVARCHAR

指定者:
接口 SQLOutput 中的 writeString
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeBoolean

public void writeBoolean(boolean x)
                  throws SQLException
将 Java 编程语言中的 boolean 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL BIT

指定者:
接口 SQLOutput 中的 writeBoolean
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeByte

public void writeByte(byte x)
               throws SQLException
将 Java 编程语言中的 byte 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL BIT

指定者:
接口 SQLOutput 中的 writeByte
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeShort

public void writeShort(short x)
                throws SQLException
将 Java 编程语言中的 short 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL SMALLINT

指定者:
接口 SQLOutput 中的 writeShort
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeInt

public void writeInt(int x)
              throws SQLException
将 Java 编程语言中的 int 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL INTEGER

指定者:
接口 SQLOutput 中的 writeInt
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeLong

public void writeLong(long x)
               throws SQLException
将 Java 编程语言中的 long 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL BIGINT

指定者:
接口 SQLOutput 中的 writeLong
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeFloat

public void writeFloat(float x)
                throws SQLException
将 Java 编程语言中的 float 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL REAL

指定者:
接口 SQLOutput 中的 writeFloat
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeDouble

public void writeDouble(double x)
                 throws SQLException
将 Java 编程语言中的 double 写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL DOUBLE

指定者:
接口 SQLOutput 中的 writeDouble
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeBigDecimal

public void writeBigDecimal(BigDecimal x)
                     throws SQLException
将 Java 编程语言中的 java.math.BigDecimal 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL NUMERIC

指定者:
接口 SQLOutput 中的 writeBigDecimal
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeBytes

public void writeBytes(byte[] x)
                throws SQLException
将 Java 编程语言中的 byte 数组写入此 SQLOutputImpl 对象。在此值返回数据库之前,驱动程序首先将它转换为 SQL VARBINARYLONGVARBINARY

指定者:
接口 SQLOutput 中的 writeBytes
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeDate

public void writeDate(Date x)
               throws SQLException
将 Java 编程语言中的 java.sql.Date 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL DATE

指定者:
接口 SQLOutput 中的 writeDate
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeTime

public void writeTime(Time x)
               throws SQLException
将 Java 编程语言中的 java.sql.Time 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL TIME

指定者:
接口 SQLOutput 中的 writeTime
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeTimestamp

public void writeTimestamp(Timestamp x)
                    throws SQLException
将 Java 编程语言中的 java.sql.Timestamp 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL TIMESTAMP

指定者:
接口 SQLOutput 中的 writeTimestamp
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeCharacterStream

public void writeCharacterStream(Reader x)
                          throws SQLException
将 Unicode 字符流写入此 SQLOutputImpl 对象。驱动程序将执行从 Unicode 到数据库 CHAR 格式的任何必要转换。

指定者:
接口 SQLOutput 中的 writeCharacterStream
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeAsciiStream

public void writeAsciiStream(InputStream x)
                      throws SQLException
将 ASCII 字符流写入此 SQLOutputImpl 对象。驱动程序将执行从 ASCII 到数据库 CHAR 格式的任何必要转换。

指定者:
接口 SQLOutput 中的 writeAsciiStream
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeBinaryStream

public void writeBinaryStream(InputStream x)
                       throws SQLException
将未解释字节流写入此 SQLOutputImpl 对象。

指定者:
接口 SQLOutput 中的 writeBinaryStream
参数:
x - 要传递到数据库的值
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeObject

public void writeObject(SQLData x)
                 throws SQLException
将包含在给定 SQLData 对象中的数据写入流中。当 SQLData 对象为 null 时,此方法将 SQL NULL 写入流中。否则,它将调用给定对象的 SQLData.writeSQL 方法,该方法将对象的属性写入流中。

SQLData.writeSQ 方法的实现调用适当的 SQLOutputImpl.writeXXX 方法,依次写入对象的每个属性。从 SQLInput 输入流读取属性和将属性写入 SQLOutputImpl 输出流都必须按照在用户定义类型的 SQL 定义中将它们列出的顺序进行。

指定者:
接口 SQLOutput 中的 writeObject
参数:
x - 表示 SQL 结构或 distinct 类型的数据的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeRef

public void writeRef(Ref x)
              throws SQLException
将 Java 编程语言中的 Ref 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的 SerialRef SQL REF 值。

指定者:
接口 SQLOutput 中的 writeRef
参数:
x - 表示 SQL REF 值的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeBlob

public void writeBlob(Blob x)
               throws SQLException
将 Java 编程语言中的 Blob 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的 SerialBlob SQL BLOB 值。

指定者:
接口 SQLOutput 中的 writeBlob
参数:
x - 表示 SQL BLOB 值的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeClob

public void writeClob(Clob x)
               throws SQLException
将 Java 编程语言中的 Clob 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的 SerialClob SQL CLOB 值。

指定者:
接口 SQLOutput 中的 writeClob
参数:
x - 表示 SQL CLOB 值的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeStruct

public void writeStruct(Struct x)
                 throws SQLException
将 Java 编程语言中的 Struct 对象写入此 SQLOutputImpl 对象。在此值返回到数据库前,驱动程序将它转换成 SQL 结构类型值。

在将 SQL 结构类型被映射为 Java 编程语言中的 Struct 对象(标准映射)时,应该使用此方法。如果将 SQL 结构类型自定义映射为 Java 编程语言中的类,则应该使用 writeObject 方法。

指定者:
接口 SQLOutput 中的 writeStruct
参数:
x - 表示 SQL 结构类型的属性的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeArray

public void writeArray(Array x)
                throws SQLException
将 Java 编程语言中的 Array 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的 SerialArray SQL ARRAY 值。

指定者:
接口 SQLOutput 中的 writeArray
参数:
x - 表示 SQL ARRAY 值的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeURL

public void writeURL(URL url)
              throws SQLException
将 Java 编程语言中的 java.sql.Type.DATALINK 对象写入此 SQLOutputImpl 对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的 SerialDatalink SQL DATALINK 值。

指定者:
接口 SQLOutput 中的 writeURL
参数:
url - 表示 SQL DATALINK 值的对象
抛出:
SQLException - 如果尝试将 UDT 的属性值写入数据库的 SQLData 对象正在使用 SQLOutputImpl 对象。

writeNString

public void writeNString(String x)
                  throws SQLException
将下一个属性以 Java 编程语言中 String 的形式写入流中。在将此属性发送到流中时,驱动程序将其转换为 SQL NCHARNVARCHARLONGNVARCHAR 值(具体取决于该参数相对于驱动程序在 NVARCHAR 值上的限制的大小)。

指定者:
接口 SQLOutput 中的 writeNString
参数:
x - 传递给数据库的值
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.6

writeNClob

public void writeNClob(NClob x)
                throws SQLException
将 SQL NCLOB 值写入流中。

指定者:
接口 SQLOutput 中的 writeNClob
参数:
x - 表示 SQL NCLOB 值的数据的 NClob 对象
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.6

writeRowId

public void writeRowId(RowId x)
                throws SQLException
将 SQL ROWID 值写入流中。

指定者:
接口 SQLOutput 中的 writeRowId
参数:
x - 表示 SQL ROWID 值的数据的 RowId 对象
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.6

writeSQLXML

public void writeSQLXML(SQLXML x)
                 throws SQLException
将 SQL XML 值写入流中。

指定者:
接口 SQLOutput 中的 writeSQLXML
参数:
x - 表示 SQL XML 值的数据的 SQLXML 对象
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.6