java.lang.Object javax.sql.rowset.serial.SQLOutputImpl
用于将自定义映射的用户定义类型 (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 |
构造方法详细信息 |
---|
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
- 如果
attributes
或
map
的值为
null
方法详细信息 |
---|
public void writeString(String x) throws SQLException
String
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
CHAR
、
VARCHAR
或
LONGVARCHAR
。
SQLOutput
中的
writeString
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeBoolean(boolean x) throws SQLException
boolean
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
BIT
。
SQLOutput
中的
writeBoolean
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeByte(byte x) throws SQLException
byte
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
BIT
。
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeShort(short x) throws SQLException
short
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
SMALLINT
。
SQLOutput
中的
writeShort
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeInt(int x) throws SQLException
int
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
INTEGER
。
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeLong(long x) throws SQLException
long
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
BIGINT
。
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeFloat(float x) throws SQLException
float
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
REAL
。
SQLOutput
中的
writeFloat
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeDouble(double x) throws SQLException
double
写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
DOUBLE
。
SQLOutput
中的
writeDouble
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeBigDecimal(BigDecimal x) throws SQLException
java.math.BigDecimal
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
NUMERIC
。
SQLOutput
中的
writeBigDecimal
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeBytes(byte[] x) throws SQLException
byte
数组写入此
SQLOutputImpl
对象。在此值返回数据库之前,驱动程序首先将它转换为 SQL
VARBINARY
或
LONGVARBINARY
。
SQLOutput
中的
writeBytes
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeDate(Date x) throws SQLException
java.sql.Date
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
DATE
。
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeTime(Time x) throws SQLException
java.sql.Time
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
TIME
。
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeTimestamp(Timestamp x) throws SQLException
java.sql.Timestamp
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为 SQL
TIMESTAMP
。
SQLOutput
中的
writeTimestamp
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeCharacterStream(Reader x) throws SQLException
SQLOutputImpl
对象。驱动程序将执行从 Unicode 到数据库
CHAR
格式的任何必要转换。
SQLOutput
中的
writeCharacterStream
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeAsciiStream(InputStream x) throws SQLException
SQLOutputImpl
对象。驱动程序将执行从 ASCII 到数据库
CHAR
格式的任何必要转换。
SQLOutput
中的
writeAsciiStream
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeBinaryStream(InputStream x) throws SQLException
SQLOutputImpl
对象。
SQLOutput
中的
writeBinaryStream
x
- 要传递到数据库的值
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
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
对象。
public void writeRef(Ref x) throws SQLException
Ref
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的
SerialRef
SQL
REF
值。
x
- 表示 SQL
REF
值的对象
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeBlob(Blob x) throws SQLException
Blob
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的
SerialBlob
SQL
BLOB
值。
x
- 表示 SQL
BLOB
值的对象
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeClob(Clob x) throws SQLException
Clob
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的
SerialClob
SQL
CLOB
值。
x
- 表示 SQL
CLOB
值的对象
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeStruct(Struct x) throws SQLException
Struct
对象写入此
SQLOutputImpl
对象。在此值返回到数据库前,驱动程序将它转换成 SQL 结构类型值。
在将 SQL 结构类型被映射为 Java 编程语言中的 Struct
对象(标准映射)时,应该使用此方法。如果将 SQL 结构类型自定义映射为 Java 编程语言中的类,则应该使用 writeObject
方法。
SQLOutput
中的
writeStruct
x
- 表示 SQL 结构类型的属性的对象
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeArray(Array x) throws SQLException
Array
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的
SerialArray
SQL
ARRAY
值。
SQLOutput
中的
writeArray
x
- 表示 SQL
ARRAY
值的对象
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeURL(URL url) throws SQLException
java.sql.Type.DATALINK
对象写入此
SQLOutputImpl
对象。在此值返回到数据库之前,驱动程序首先将它转换为可序列化的
SerialDatalink
SQL
DATALINK
值。
url
- 表示 SQL
DATALINK
值的对象
SQLException
- 如果尝试将 UDT 的属性值写入数据库的
SQLData
对象正在使用
SQLOutputImpl
对象。
public void writeNString(String x) throws SQLException
String
的形式写入流中。在将此属性发送到流中时,驱动程序将其转换为 SQL
NCHAR
、
NVARCHAR
或
LONGNVARCHAR
值(具体取决于该参数相对于驱动程序在
NVARCHAR
值上的限制的大小)。
SQLOutput
中的
writeNString
x
- 传递给数据库的值
SQLException
- 如果发生数据库访问错误
public void writeNClob(NClob x) throws SQLException
NCLOB
值写入流中。
SQLOutput
中的
writeNClob
x
- 表示 SQL
NCLOB
值的数据的
NClob
对象
SQLException
- 如果发生数据库访问错误
public void writeRowId(RowId x) throws SQLException
ROWID
值写入流中。
SQLOutput
中的
writeRowId
x
- 表示 SQL
ROWID
值的数据的
RowId
对象
SQLException
- 如果发生数据库访问错误
public void writeSQLXML(SQLXML x) throws SQLException
XML
值写入流中。
SQLOutput
中的
writeSQLXML
x
- 表示 SQL
XML
值的数据的
SQLXML
对象
SQLException
- 如果发生数据库访问错误