- java.lang.Object
-
- javax.sql.rowset.serial.SQLInputImpl
-
- All Implemented Interfaces:
-
SQLInput
public class SQLInputImpl extends Object implements SQLInput
用于自定义映射用户定义类型(UDT)的输入流。 一个SQLInputImpl
对象是一个输入流,它包含一个作为UDT属性的值的流。当在具有自定义映射的SQL结构化或不同类型上调用方法
getObject
时,getObject
由驱动程序使用; 程序员从不直接调用SQLInputImpl
方法。 它们在这里提供给那些编写RowSet
实现的人的方便。SQLInputImpl
类提供了一组类似于ResultSet
吸气剂方法的读取器方法。 这些方法可以读取SQLInputImpl
对象中的值。方法
wasNull
用于确定最后读取的值是否为SQLNULL
。当方法
getObject
与实现接口SQLData
的类的对象SQLData
调用时,JDBC驱动程序调用方法SQLData.getSQLType
来确定定制映射的UDT的SQL类型。 驱动程序创建一个SQLInputImpl
的实例,并使用UDT的属性进行填充。 然后,驱动程序将输入流传SQLData.readSQL
方法SQLData.readSQL
,方法SQLData.readSQL
又调用SQLInputImpl
读取器方法从输入流读取属性。- 从以下版本开始:
- 1.5
- 另请参见:
-
SQLData
-
-
构造方法摘要
构造方法 Constructor 描述 SQLInputImpl(Object[] attributes, Map<String,Class<?>> map)
创建一个SQLInputImpl
对象,该对象使用给定的属性数组和给定的类型映射进行初始化。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Array
readArray()
从流中读取SQLARRAY
值,并将其作为Java编程语言中的Array
对象返回。InputStream
readAsciiStream()
将此SQLInputImpl
对象中的下一个属性作为ASCII字符流返回。BigDecimal
readBigDecimal()
检索SQLInputImpl
对象中的下一个属性为java.math.BigDecimal
。InputStream
readBinaryStream()
将此SQLInputImpl
对象中的下一个属性返回为未解释的字节流。Blob
readBlob()
在SQLInputImpl
对象的头部BLOB
值作为Java编程语言中的Blob
对象。boolean
readBoolean()
检索此SQLInputImpl
对象中的下一个属性,作为Java编程语言中的boolean
。byte
readByte()
获取此的下一个属性SQLInputImpl
对象为byte
的Java编程语言。byte[]
readBytes()
将此SQLInputImpl
对象中的下一个属性作为字节数组检索。Reader
readCharacterStream()
将此SQLInputImpl
对象中的下一个属性作为Unicode字符流检索。Clob
readClob()
CLOB
SQLInputImpl
对象的头部的CLOB
值作为Java编程语言中的一个Clob
对象。Date
readDate()
检索SQLInputImpl
的下一个属性为java.sql.Date
对象。double
readDouble()
获取此的下一个属性SQLInputImpl
对象为double
的Java编程语言。float
readFloat()
检索此SQLInputImpl
对象中的下一个属性为Java编程语言中的float
。int
readInt()
将该SQLInputImpl
对象中的下一个属性作为Java编程语言中的int
检索。long
readLong()
获取此的下一个属性SQLInputImpl
对象为long
的Java编程语言。NClob
readNClob()
从流中读取SQLNCLOB
值,并将其作为Java编程语言中的Clob
对象返回。String
readNString()
读取流中的下一个属性,并将其作为Java编程语言中的String
返回。Object
readObject()
以Object
的Java编程语言Object
该SQLInputImpl
对象的头部的值。Ref
readRef()
以该Java编程语言的SQLInputImpl
对象的形式Ref
该SQLInputImpl
对象的头部的值。RowId
readRowId()
从流中读取SQLROWID
值,并将其作为Java编程语言中的RowId
对象返回。short
readShort()
将这个SQLInputImpl
对象中的下一个属性作为Java编程语言中的short
。SQLXML
readSQLXML()
从流中读取SQLXML
值,并将其作为Java编程语言中的SQLXML
对象返回。String
readString()
将该SQLInputImpl
对象中的下一个属性作为Java编程语言中的String
。Time
readTime()
将此SQLInputImpl
对象中的下一个属性检索为java.sql.Time
对象。Timestamp
readTimestamp()
将此SQLInputImpl
对象中的下一个属性检索为java.sql.Timestamp
对象。URL
readURL()
从流中读取SQLDATALINK
值,并将其作为Java编程语言中的URL
对象返回。boolean
wasNull()
确定从该SQLInputImpl
对象读取的最后一个值是否为null
。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.sql.SQLInput
readObject
-
-
-
-
构造方法详细信息
-
SQLInputImpl
public SQLInputImpl(Object[] attributes, Map<String,Class<?>> map) throws SQLException
创建一个SQLInputImpl
对象,该对象使用给定的属性数组和给定的类型映射进行初始化。 如果任何属性是UDT,其名称位于类型映射中的条目中,则将根据相应的SQLData
实现映射属性。- 参数
-
attributes
-的阵列Object
实例,其中每个元素是一个UDT的属性。 数组中属性的顺序与UDT定义中定义属性的顺序相同。 -
map
- 一个包含零个或多个条目的java.util.Map
对象,每个条目由1)一个String
给出UDT的完全限定名称,以及2)Class
对象,用于定义如何映射UDT的SQLData
实现 - 异常
-
SQLException
- 如果attributes
或map
是null
值
-
-
方法详细信息
-
readString
public String readString() throws SQLException
获取此的下一个属性SQLInputImpl
对象为String
的Java编程语言。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readString
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有其他值。
-
readBoolean
public boolean readBoolean() throws SQLException
获取此的下一个属性SQLInputImpl
对象为boolean
的Java编程语言。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readBoolean
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有其他值。
-
readByte
public byte readByte() throws SQLException
获取此的下一个属性SQLInputImpl
对象为byte
的Java编程语言。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readByte
在接口SQLInput
- 结果
-
此
SQLInputImpl
对象中的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有其他值
-
readShort
public short readShort() throws SQLException
获取此的下一个属性SQLInputImpl
对象为short
的Java编程语言。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readShort
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readInt
public int readInt() throws SQLException
将该SQLInputImpl
对象中的下一个属性作为Java编程语言中的int
检索。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readInt
在接口SQLInput
- 结果
-
此
SQLInputImpl
对象中的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readLong
public long readLong() throws SQLException
将这个SQLInputImpl
对象中的下一个属性作为Java编程语言中的一个long
检索。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readLong
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readFloat
public float readFloat() throws SQLException
获取此的下一个属性SQLInputImpl
对象为float
的Java编程语言。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readFloat
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readDouble
public double readDouble() throws SQLException
获取此的下一个属性SQLInputImpl
对象为double
的Java编程语言。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readDouble
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readBigDecimal
public BigDecimal readBigDecimal() throws SQLException
检索SQLInputImpl
对象中的下一个属性为java.math.BigDecimal
。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readBigDecimal
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readBytes
public byte[] readBytes() throws SQLException
将此SQLInputImpl
对象中的下一个属性作为字节数组检索。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readBytes
在接口SQLInput
- 结果
-
这个
SQLInputImpl
对象的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readDate
public Date readDate() throws SQLException
检索此SQLInputImpl
的下一个属性为java.sql.Date
对象。此方法不执行类型安全检查以确定返回的类型是否为预期类型; 这个责任被委托给由
SQLData
实现定义的UDT映射。- Specified by:
-
readDate
在接口SQLInput
- 结果
-
此
SQLInputImpl
对象中的下一个属性; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置,或者流中没有更多值
-
readTime
public Time readTime() throws SQLException
将此SQLInputImpl
对象中的下一个属性检索为java.sql.Time
对象。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为将此职责委托给由
SQLData
实现实现的UDT映射。- Specified by:
-
readTime
在接口SQLInput
- 结果
-
属性;
如果值为
SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readTimestamp
public Timestamp readTimestamp() throws SQLException
将此SQLInputImpl
对象中的下一个属性检索为java.sql.Timestamp
对象。- Specified by:
-
readTimestamp
在接口SQLInput
- 结果
-
属性;
如果值为
SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readCharacterStream
public Reader readCharacterStream() throws SQLException
将此SQLInputImpl
对象中的下一个属性作为Unicode字符流检索。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为该责任由
SQLData
实现执行的委托给UDT映射。- Specified by:
-
readCharacterStream
在接口SQLInput
- 结果
-
属性;
如果值为
SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readAsciiStream
public InputStream readAsciiStream() throws SQLException
将此SQLInputImpl
对象中的下一个属性作为ASCII字符流返回。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为此责任由
SQLData
实现执行的委托给UDT映射。- Specified by:
-
readAsciiStream
在接口SQLInput
- 结果
-
属性;
如果值为
SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readBinaryStream
public InputStream readBinaryStream() throws SQLException
将此SQLInputImpl
对象中的下一个属性返回为未解释的字节流。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为将此职责委托给由
SQLData
实现实现的UDT映射。- Specified by:
-
readBinaryStream
在接口SQLInput
- 结果
-
属性;
如果值为
SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readObject
public Object readObject() throws SQLException
以这种SQLInputImpl
对象作为Object
以Java编程语言的形式Object
该值。 返回的对象的实际类型由SQL编程语言中的类型的默认映射确定,除非有自定义映射,在这种情况下,返回的对象的类型由此流的类型映射决定。启用JDBC技术的驱动程序在将流传送到应用程序之前,先注册一个类型映射。
当流头的数据是SQL
NULL
,此方法返回null
。 如果基准是具有自定义映射的SQL结构或不同类型,则此方法确定流头上的基准的SQL类型,构造适当类的对象,并调用该对象的方法SQLData.readSQL
。 然后,readSQL
方法调用适当的SQLInputImpl.readXXX
方法从流中检索属性值。- Specified by:
-
readObject
在接口SQLInput
- 结果
-
流头的值为Java编程语言中的
Object
;null
如果值为SQLNULL
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readRef
public Ref readRef() throws SQLException
以该Java编程语言的SQLInputImpl
对象的形式Ref
该SQLInputImpl
对象的头部的值。- Specified by:
-
readRef
在接口SQLInput
- 结果
-
一个
Ref
对象,表示流头上的SQLREF
值; 如果值为SQL NULL
返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readBlob
public Blob readBlob() throws SQLException
将该SQLInputImpl
对象的头部的BLOB
值作为Java编程语言中的Blob
对象检索。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为该责任由
SQLData
实现执行的委托给UDT映射。- Specified by:
-
readBlob
在接口SQLInput
- 结果
-
一个表示该流头的SQL
BLOB
值的Blob
对象; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readClob
public Clob readClob() throws SQLException
以SQLInputImpl
对象的头部CLOB
值作为Java编程语言中的Clob
对象。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为此责任由
SQLData
实现执行的委托给UDT映射。- Specified by:
-
readClob
在接口SQLInput
- 结果
-
一个
Clob
对象,表示流的头部的SQLCLOB
值; 如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readArray
public Array readArray() throws SQLException
从流中读取SQLARRAY
值,并将其作为Java编程语言中的Array
对象返回。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为该责任由
SQLData
实现由UDT映射委派。- Specified by:
-
readArray
在接口SQLInput
- 结果
-
一个
Array
对象,表示流的头部的SQLARRAY
值; *如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
wasNull
public boolean wasNull() throws SQLException
确定从此SQLInputImpl
对象读取的最后一个值是否为null
。- Specified by:
-
wasNull
在接口SQLInput
- 结果
-
true
如果最近读取的SQL值是null
; 否则,false
; 默认情况下将返回false - 异常
-
SQLException
- 如果发生错误,则确定最后读取的值为null
;
-
readURL
public URL readURL() throws SQLException
从流中读取SQLDATALINK
值,并将其作为Java编程语言中的URL
对象返回。此方法不执行类型安全检查,以确定返回的类型是否为预期类型,因为该责任由
SQLData
实现由委托给UDT映射。- Specified by:
-
readURL
在接口SQLInput
- 结果
-
一个
URL
对象,表示流头上的SQLDATALINK
值; *如果值为SQL NULL
,则返回null
- 异常
-
SQLException
- 如果读取位置位于无效位置; 或者如果流中没有其他值。
-
readNClob
public NClob readNClob() throws SQLException
从流中读取SQLNCLOB
值,并将其作为Java编程语言中的Clob
对象返回。- Specified by:
-
readNClob
在接口SQLInput
- 结果
-
一个
NClob
对象,表示流头部的SQLNCLOB
值的数据;null
如果读取的值是SQLNULL
- 异常
-
SQLException
- 如果发生数据库访问错误 - 从以下版本开始:
- 1.6
-
readNString
public String readNString() throws SQLException
读取流中的下一个属性,并将其作为Java编程语言中的String
返回。 访问时,它适用于使用NCHAR
,NVARCHAR
和LONGNVARCHAR
列。- Specified by:
-
readNString
在接口SQLInput
- 结果
-
属性;
如果值为SQL
NULL
,则返回null
- 异常
-
SQLException
- 如果发生数据库访问错误 - 从以下版本开始:
- 1.6
-
readSQLXML
public SQLXML readSQLXML() throws SQLException
从流中读取SQLXML
值,并将其作为Java编程语言中的SQLXML
对象返回。- Specified by:
-
readSQLXML
在接口SQLInput
- 结果
-
一个
SQLXML
对象,表示流头上的SQLXML
值的数据;null
如果读取的值是SQLNULL
- 异常
-
SQLException
- 如果发生数据库访问错误 - 从以下版本开始:
- 1.6
-
readRowId
public RowId readRowId() throws SQLException
从流中读取SQLROWID
值,并将其作为Java编程语言中的RowId
对象返回。- Specified by:
-
readRowId
在接口SQLInput
- 结果
-
表示流头部的SQL
ROWID
值的数据的RowId
对象;null
如果读取的值是SQLNULL
- 异常
-
SQLException
- 如果发生数据库访问错误 - 从以下版本开始:
- 1.6
-
-