java.lang.Object javax.sql.rowset.serial.SQLInputImpl
用于自定义映射用户定义类型 (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 |
构造方法详细信息 |
---|
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
- 如果
attributes
或
map
的值为
null
方法详细信息 |
---|
public String readString() throws SQLException
String
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInput
中的
readString
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public boolean readBoolean() throws SQLException
boolean
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInput
中的
readBoolean
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public byte readByte() throws SQLException
byte
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public short readShort() throws SQLException
short
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public int readInt() throws SQLException
int
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public long readLong() throws SQLException
long
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public float readFloat() throws SQLException
float
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public double readDouble() throws SQLException
double
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInput
中的
readDouble
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public BigDecimal readBigDecimal() throws SQLException
java.math.BigDecimal
的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInput
中的
readBigDecimal
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public byte[] readBytes() throws SQLException
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Date readDate() throws SQLException
java.sql.Date
对象的形式获取此
SQLInputImpl
中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现定义的 UDT 映射。
SQLInputImpl
对象中的下一个属性;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Time readTime() throws SQLException
java.sql.Time
对象的形式获取此
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Timestamp readTimestamp() throws SQLException
java.sql.Timestamp
对象的形式获取此
SQLInputImpl
对象中的下一个属性。
SQLInput
中的
readTimestamp
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Reader readCharacterStream() throws SQLException
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
SQLInput
中的
readCharacterStream
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public InputStream readAsciiStream() throws SQLException
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
SQLInput
中的
readAsciiStream
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public InputStream readBinaryStream() throws SQLException
SQLInputImpl
对象中的下一个属性。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
SQLInput
中的
readBinaryStream
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Object readObject() throws SQLException
Object
的形式获取此
SQLInputImpl
对象的头部值。如果不存在自定义映射关系,则返回对象的实际类型由 SQL 类型到 Java 编程语言中类型的默认映射关系确定;如果存在自定义映射关系,则返回对象的类型由此流的类型映射确定。
在将流传递给应用程序之前,启用 JDBC 技术的驱动程序在流中注册类型映射表。
当流头部中的数据为 SQL NULL
时,此方法返回 null
。如果数据是具有自定义映射关系的 SQL 结构类型或 distinct 类型,则此方法确定位于流头部的数据的 SQL 类型,构造适当类的对象,并对该对象调用 SQLData.readSQL
方法。然后,readSQL
方法调用适当的 SQLInputImpl.readXXX
方法从流获取属性值。
SQLInput
中的
readObject
Object
的形式返回流头部的值;如果值为 SQL
NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值
public Ref readRef() throws SQLException
Ref
对象的形式获取此
SQLInputImpl
对象的头部值。
REF
值的
Ref
对象;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Blob readBlob() throws SQLException
Blob
对象的形式获取此
SQLInputImpl
对象头部的
BLOB
值。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
BLOB
值的
Blob
对象;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Clob readClob() throws SQLException
Clob
对象的形式获取此
SQLInputImpl
对象头部的
CLOB
值。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
CLOB
值的
Clob
对象;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public Array readArray() throws SQLException
ARRAY
值并以 Java 编程语言中
Array
对象的形式返回。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现实现的 UDT 映射。
ARRAY
值的
Array
对象;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public boolean wasNull() throws SQLException
SQLInputImpl
对象读取的上一个值是否为
null
。
null
,则返回
true
;否则返回
false
;默认情况下它将返回 false
SQLException
- 如果在确定上一次读取的值是否为
null
值时发生错误。
public URL readURL() throws SQLException
DATALINK
值并以 Java 编程语言中
URL
对象的形式返回。
此方法不执行类型安全检查来确定返回类型是否为期望类型;该职责已委托给 SQLData
实现的 UDT 映射。
DATALINK
值的
URL
对象;如果值为
SQL NULL
,则返回
null
SQLException
- 如果读取位置被定位在无效位置,或者流中不存在更多值。
public NClob readNClob() throws SQLException
NCLOB
值并以 Java 编程语言中
Clob
对象的形式返回。
NClob
对象,表示位于流头部的 SQL
NCLOB
值的数据;如果读取的值为 SQL
NULL
,则返回
null
SQLException
- 如果发生数据库访问错误
public String readNString() throws SQLException
String
的形式返回。访问
NCHAR
、
NVARCHAR
和
LONGNVARCHAR
列时使用该方法。
SQLInput
中的
readNString
NULL
,则返回
null
SQLException
- 如果发生数据库访问错误
public SQLXML readSQLXML() throws SQLException
XML
值并以 Java 编程语言中
SQLXML
对象的形式返回。
SQLInput
中的
readSQLXML
SQLXML
对象,表示位于流头部的 SQL
XML
值的数据;如果读取的值为 SQL
NULL
,则返回
null
SQLException
- 如果发生数据库访问错误
public RowId readRowId() throws SQLException
ROWID
值并以 Java 编程语言中
RowId
对象的形式返回。
RowId
对象,表示位于流头部的 SQL
ROWID
值的数据;如果读取的值为 SQL
NULL
,则返回
null
SQLException
- 如果发生数据库访问错误