JavaTM Platform
Standard Ed. 6

javax.sql.rowset.serial
类 SQLInputImpl

java.lang.Object
  继承者 javax.sql.rowset.serial.SQLInputImpl
所有已实现的接口:
SQLInput

public class SQLInputImpl
extends Object
implements SQLInput

用于自定义映射用户定义类型 (UDT) 的输入流。SQLInputImpl 对象是一个包含值流的输入流,这些值是 UDT 的属性。

在对具有自定义映射关系的 SQL 结构类型或不同类型调用 getObject 方法时,驱动程序在后台使用此类;程序员决不直接调用 SQLInputImpl 方法。这里提供这些方法是为了便于编写 RowSet 实现。

SQLInputImpl 类提供一组类似于 ResultSet 获取方法的读取方法。这些方法可以在 SQLInputImpl 对象中读取值。

方法 wasNull 用于确定读取的最后一个值是否是 SQL NULL

当用实现接口 SQLData 的类的对象调用方法 getObject 时,JDBC 驱动程序调用方法 SQLData.getSQLType 来确定要自定义映射的 UDT 的 SQL 类型。驱动程序创建一个 SQLInputImpl 实例,并用 UDT 的属性填充它。然后,驱动程序将输入流传递给 SQLData.readSQL 方法,该方法依次调用 SQLInputImpl 读取方法从输入流读取属性。

另请参见:
SQLData

构造方法摘要
SQLInputImpl(Object[] attributes, Map<String,Class<?>> map)
          创建一个 SQLInputImpl 对象,并使用给定的属性数组和类型映射表进行初始化。
 
方法摘要
 Array readArray()
          从流中读取 SQL ARRAY 值并以 Java 编程语言中 Array 对象的形式返回。
 InputStream readAsciiStream()
          以 ASCII 字符流的形式返回此 SQLInputImpl 对象中的下一个属性。
 BigDecimal readBigDecimal()
          以 java.math.BigDecimal 的形式获取此 SQLInputImpl 对象中的下一个属性。
 InputStream readBinaryStream()
          以未解释字节流的形式返回此 SQLInputImpl 对象中的下一个属性。
 Blob readBlob()
          以 Java 编程语言中 Blob 对象的形式获取此 SQLInputImpl 对象头部的 BLOB 值。
 boolean readBoolean()
          以 Java 编程语言中 boolean 的形式获取此 SQLInputImpl 对象中的下一个属性。
 byte readByte()
          以 Java 编程语言中 byte 的形式获取此 SQLInputImpl 对象中的下一个属性。
 byte[] readBytes()
          以字节数组的形式获取此 SQLInputImpl 对象中的下一个属性。
 Reader readCharacterStream()
          以 Unicode 字符流的形式获取此 SQLInputImpl 对象中的下一个属性。
 Clob readClob()
          以 Java 编程语言中 Clob 对象的形式获取此 SQLInputImpl 对象头部的 CLOB 值。
 Date readDate()
          以 java.sql.Date 对象的形式获取此 SQLInputImpl 中的下一个属性。
 double readDouble()
          以 Java 编程语言中 double 的形式获取此 SQLInputImpl 对象中的下一个属性。
 float readFloat()
          以 Java 编程语言中 float 的形式获取此 SQLInputImpl 对象中的下一个属性。
 int readInt()
          以 Java 编程语言中 int 的形式获取此 SQLInputImpl 对象中的下一个属性。
 long readLong()
          以 Java 编程语言中 long 的形式获取此 SQLInputImpl 对象中的下一个属性。
 NClob readNClob()
          从流中读取 SQL NCLOB 值并以 Java 编程语言中 Clob 对象的形式返回。
 String readNString()
          读取流中下一个属性并以 Java 编程语言中 String 的形式返回。
 Object readObject()
          以 Java 编程语言中 Object 的形式获取此 SQLInputImpl 对象的头部值。
 Ref readRef()
          以 Java 编程语言中 Ref 对象的形式获取此 SQLInputImpl 对象的头部值。
 RowId readRowId()
          从流中读取 SQL ROWID 值并以 Java 编程语言中 RowId 对象的形式返回。
 short readShort()
          以 Java 编程语言中 short 的形式获取此 SQLInputImpl 对象中的下一个属性。
 SQLXML readSQLXML()
          从流中读取 SQL XML 值并以 Java 编程语言中 SQLXML 对象的形式返回。
 String readString()
          以 Java 编程语言中 String 的形式获取此 SQLInputImpl 对象中的下一个属性。
 Time readTime()
          以 java.sql.Time 对象的形式获取此 SQLInputImpl 对象中的下一个属性。
 Timestamp readTimestamp()
          以 java.sql.Timestamp 对象的形式获取此 SQLInputImpl 对象中的下一个属性。
 URL readURL()
          从流中读取 SQL DATALINK 值并以 Java 编程语言中 URL 对象的形式返回。
 boolean wasNull()
          确认从此 SQLInputImpl 对象读取的上一个值是否为 null
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SQLInputImpl

public SQLInputImpl(Object[] attributes,
                    Map<String,Class<?>> map)
             throws SQLException
创建一个 SQLInputImpl 对象,并使用给定的属性数组和类型映射表进行初始化。如果这些属性中有某个 UDT 属性的名称存在于类型映射表条目中,则根据相应的 SQLData 实现映射该属性。

参数:
attributes - Object 实例数组,其中每个元素都是 UDT 属性。数组中属性的顺序与它们在 UDT 定义中所定义的顺序相同。
map - 包含零个或多个条目的 java.util.Map 对象,其中每个条目包含:1) 给出 UDT 完全限定名的 String 2) 用于定义 UDT 映射方式的 SQLData 实现的 Class 对象
抛出:
SQLException - 如果 attributesmap 的值为 null
方法详细信息

readString

public String readString()
                  throws SQLException
以 Java 编程语言中 String 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readString
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readBoolean

public boolean readBoolean()
                    throws SQLException
以 Java 编程语言中 boolean 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readBoolean
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readByte

public byte readByte()
              throws SQLException
以 Java 编程语言中 byte 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readByte
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readShort

public short readShort()
                throws SQLException
以 Java 编程语言中 short 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readShort
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readInt

public int readInt()
            throws SQLException
以 Java 编程语言中 int 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readInt
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readLong

public long readLong()
              throws SQLException
以 Java 编程语言中 long 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readLong
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readFloat

public float readFloat()
                throws SQLException
以 Java 编程语言中 float 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readFloat
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readDouble

public double readDouble()
                  throws SQLException
以 Java 编程语言中 double 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readDouble
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readBigDecimal

public BigDecimal readBigDecimal()
                          throws SQLException
java.math.BigDecimal 的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readBigDecimal
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readBytes

public byte[] readBytes()
                 throws SQLException
以字节数组的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readBytes
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readDate

public Date readDate()
              throws SQLException
java.sql.Date 对象的形式获取此 SQLInputImpl 中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现定义的 UDT 映射。

指定者:
接口 SQLInput 中的 readDate
返回:
SQLInputImpl 对象中的下一个属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readTime

public Time readTime()
              throws SQLException
java.sql.Time 对象的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readTime
返回:
属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readTimestamp

public Timestamp readTimestamp()
                        throws SQLException
java.sql.Timestamp 对象的形式获取此 SQLInputImpl 对象中的下一个属性。

指定者:
接口 SQLInput 中的 readTimestamp
返回:
属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readCharacterStream

public Reader readCharacterStream()
                           throws SQLException
以 Unicode 字符流的形式获取此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readCharacterStream
返回:
属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readAsciiStream

public InputStream readAsciiStream()
                            throws SQLException
以 ASCII 字符流的形式返回此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readAsciiStream
返回:
属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readBinaryStream

public InputStream readBinaryStream()
                             throws SQLException
以未解释字节流的形式返回此 SQLInputImpl 对象中的下一个属性。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readBinaryStream
返回:
属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readObject

public Object readObject()
                  throws SQLException
以 Java 编程语言中 Object 的形式获取此 SQLInputImpl 对象的头部值。如果不存在自定义映射关系,则返回对象的实际类型由 SQL 类型到 Java 编程语言中类型的默认映射关系确定;如果存在自定义映射关系,则返回对象的类型由此流的类型映射确定。

在将流传递给应用程序之前,启用 JDBC 技术的驱动程序在流中注册类型映射表。

当流头部中的数据为 SQL NULL 时,此方法返回 null。如果数据是具有自定义映射关系的 SQL 结构类型或 distinct 类型,则此方法确定位于流头部的数据的 SQL 类型,构造适当类的对象,并对该对象调用 SQLData.readSQL 方法。然后,readSQL 方法调用适当的 SQLInputImpl.readXXX 方法从流获取属性值。

指定者:
接口 SQLInput 中的 readObject
返回:
以 Java 编程语言中 Object 的形式返回流头部的值;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值

readRef

public Ref readRef()
            throws SQLException
以 Java 编程语言中 Ref 对象的形式获取此 SQLInputImpl 对象的头部值。

指定者:
接口 SQLInput 中的 readRef
返回:
表示位于流头部的 SQL REF 值的 Ref 对象;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readBlob

public Blob readBlob()
              throws SQLException
以 Java 编程语言中 Blob 对象的形式获取此 SQLInputImpl 对象头部的 BLOB 值。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readBlob
返回:
表示位于此流头部的 SQL BLOB 值的 Blob 对象;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readClob

public Clob readClob()
              throws SQLException
以 Java 编程语言中 Clob 对象的形式获取此 SQLInputImpl 对象头部的 CLOB 值。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readClob
返回:
表示位于流头部的 SQL CLOB 值的 Clob 对象;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readArray

public Array readArray()
                throws SQLException
从流中读取 SQL ARRAY 值并以 Java 编程语言中 Array 对象的形式返回。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readArray
返回:
表示位于流头部的 SQL ARRAY 值的 Array 对象;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

wasNull

public boolean wasNull()
                throws SQLException
确认从此 SQLInputImpl 对象读取的上一个值是否为 null

指定者:
接口 SQLInput 中的 wasNull
返回:
如果最近一次读取的 SQL 值为 null,则返回 true;否则返回 false;默认情况下它将返回 false
抛出:
SQLException - 如果在确定上一次读取的值是否为 null 值时发生错误。

readURL

public URL readURL()
            throws SQLException
从流中读取 SQL DATALINK 值并以 Java 编程语言中 URL 对象的形式返回。

此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData 实现的 UDT 映射。

指定者:
接口 SQLInput 中的 readURL
返回:
表示位于流头部的 SQL DATALINK 值的 URL 对象;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果读取位置被定位在无效位置,或者流中不存在更多值。

readNClob

public NClob readNClob()
                throws SQLException
从流中读取 SQL NCLOB 值并以 Java 编程语言中 Clob 对象的形式返回。

指定者:
接口 SQLInput 中的 readNClob
返回:
NClob 对象,表示位于流头部的 SQL NCLOB 值的数据;如果读取的值为 SQL NULL,则返回 null
抛出:
SQLException - 如果发生数据库访问错误

readNString

public String readNString()
                   throws SQLException
读取流中下一个属性并以 Java 编程语言中 String 的形式返回。访问 NCHARNVARCHARLONGNVARCHAR 列时使用该方法。

指定者:
接口 SQLInput 中的 readNString
返回:
属性;如果值为 SQL NULL,则返回 null
抛出:
SQLException - 如果发生数据库访问错误

readSQLXML

public SQLXML readSQLXML()
                  throws SQLException
从流中读取 SQL XML 值并以 Java 编程语言中 SQLXML 对象的形式返回。

指定者:
接口 SQLInput 中的 readSQLXML
返回:
SQLXML 对象,表示位于流头部的 SQL XML 值的数据;如果读取的值为 SQL NULL,则返回 null
抛出:
SQLException - 如果发生数据库访问错误

readRowId

public RowId readRowId()
                throws SQLException
从流中读取 SQL ROWID 值并以 Java 编程语言中 RowId 对象的形式返回。

指定者:
接口 SQLInput 中的 readRowId
返回:
RowId 对象,表示位于流头部的 SQL ROWID 值的数据;如果读取的值为 SQL NULL,则返回 null
抛出:
SQLException - 如果发生数据库访问错误

JavaTM Platform
Standard Ed. 6

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

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