Module java.sql.rowset

Class SQLInputImpl

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

public class SQLInputImpl extends Object implements SQLInput
用于自定义映射用户定义类型(UDTs)的输入流。 SQLInputImpl 对象是一个输入流,其中包含作为UDT属性的值流。

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

SQLInputImpl 类提供了一组类似于 ResultSet getter 方法的读取方法。这些方法使得可以读取 SQLInputImpl 对象中的值。

方法 wasNull 用于确定上次读取的值是否为SQL NULL

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

自从:
1.5
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    SQLInputImpl(Object[] attributes, Map<String,Class<?>> map)
    创建一个使用给定属性数组和给定类型映射初始化的 SQLInputImpl 对象。
  • Method Summary

    Modifier and Type
    Method
    Description
    从流中读取一个SQL ARRAY 值,并将其作为Java编程语言中的 Array 对象返回。
    将此 SQLInputImpl 对象中的下一个属性作为ASCII字符流返回。
    java.math.BigDecimal 的形式检索此 SQLInputImpl 对象中的下一个属性。
    将此 SQLInputImpl 对象中的下一个属性作为未解释字节流返回。
    将此 SQLInputImpl 对象头部的 BLOB 值作为Java编程语言中的 Blob 对象检索。
    boolean
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 boolean 返回。
    byte
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 byte 返回。
    byte[]
    将此 SQLInputImpl 对象中的下一个属性作为字节数组返回。
    将此 SQLInputImpl 对象中的下一个属性作为Unicode字符流返回。
    将此 SQLInputImpl 对象头部的 CLOB 值作为Java编程语言中的 Clob 对象检索。
    将此 SQLInputImpl 对象中的下一个属性作为 java.sql.Date 对象返回。
    double
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 double 返回。
    float
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 float 返回。
    int
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 int 返回。
    long
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 long 返回。
    从流中读取一个SQL NCLOB 值,并将其作为Java编程语言中的 Clob 对象返回。
    读取流中的下一个属性,并将其作为Java编程语言中的 String 返回。
    将此 SQLInputImpl 对象头部的值作为Java编程语言中的 Object 返回。
    Ref
    将此 SQLInputImpl 对象头部的值作为Java编程语言中的 Ref 对象返回。
    从流中读取一个SQL ROWID 值,并将其作为Java编程语言中的 RowId 对象返回。
    short
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 short 返回。
    从流中读取一个SQL XML 值,并将其作为Java编程语言中的 SQLXML 对象返回。
    将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 String 返回。
    将此 SQLInputImpl 对象中的下一个属性作为 java.sql.Time 对象返回。
    将此 SQLInputImpl 对象中的下一个属性作为 java.sql.Timestamp 对象返回。
    URL
    从流中读取一个SQL DATALINK 值,并将其作为Java编程语言中的 URL 对象返回。
    boolean
    确定从此 SQLInputImpl 对象读取的最后一个值是否为 null

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods declared in interface java.sql.SQLInput

    readObject
  • Constructor Details

    • 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 - 如果 attributesmapnull
  • Method Details

    • readString

      public String readString() throws SQLException
      将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 String 返回。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由由 SQLData 实现定义的UDT映射委托。

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

      public boolean readBoolean() throws SQLException
      将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 boolean 返回。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由由 SQLData 实现定义的UDT映射委托。

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

      public byte readByte() throws SQLException
      将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 byte 返回。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由由 SQLData 实现定义的UDT映射委托。

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

      public short readShort() throws SQLException
      将此 SQLInputImpl 对象中的下一个属性作为Java编程语言中的 short 返回。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由由 SQLData 实现定义的UDT映射委托。

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

      public int readInt() throws SQLException
      从这个SQLInputImpl对象中检索下一个属性,作为Java编程语言中的int

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public long readLong() throws SQLException
      从这个SQLInputImpl对象中检索下一个属性,作为Java编程语言中的long

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public float readFloat() throws SQLException
      从这个SQLInputImpl对象中检索下一个属性,作为Java编程语言中的float

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public double readDouble() throws SQLException
      从这个SQLInputImpl对象中检索下一个属性,作为Java编程语言中的double

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public BigDecimal readBigDecimal() throws SQLException
      从这个SQLInputImpl对象中检索下一个属性,作为java.math.BigDecimal

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public byte[] readBytes() throws SQLException
      从这个SQLInputImpl对象中检索下一个属性,作为字节数组。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public Date readDate() throws SQLException
      作为java.sql.Date对象,从这个SQLInputImpl中检索下一个属性。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型;此责任由SQLData实现定义的UDT映射委托处理。

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

      public Time readTime() throws SQLException
      作为java.sql.Time对象,从这个SQLInputImpl中检索下一个属性。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型,此责任由SQLData实现定义的UDT映射委托处理。

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

      public Timestamp readTimestamp() throws SQLException
      作为java.sql.Timestamp对象,从这个SQLInputImpl中检索下一个属性。
      指定者:
      readTimestamp 在接口 SQLInput
      返回:
      属性;如果值为SQL NULL,则返回null
      抛出:
      SQLException - 如果读取位置位于无效位置;或者流中没有更多值。
    • readCharacterStream

      public Reader readCharacterStream() throws SQLException
      作为Unicode字符流,从这个SQLInputImpl中检索下一个属性。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型,此责任由SQLData实现定义的UDT映射委托处理。

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

      public InputStream readAsciiStream() throws SQLException
      作为ASCII字符流,从这个SQLInputImpl中检索下一个属性。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型,此责任由SQLData实现定义的UDT映射委托处理。

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

      public InputStream readBinaryStream() throws SQLException
      作为未解释字节流,从这个SQLInputImpl中检索下一个属性。

      此方法不执行类型安全检查以确定返回的类型是否为预期类型,此责任由SQLData实现定义的UDT映射委托处理。

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

      public Object readObject() throws SQLException
      以Java编程语言中的Object形式检索此SQLInputImpl对象头部的值。除非存在自定义映射,否则返回的对象的实际类型由SQL类型到Java编程语言类型的默认映射确定,否则返回的对象的类型由此流的类型映射确定。

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

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

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

      public Ref readRef() throws SQLException
      以Java编程语言中的Ref对象形式检索此SQLInputImpl对象头部的值。
      指定者:
      readRef 在接口 SQLInput
      返回:
      代表流头部的SQL REF值的Ref对象;如果值为SQL NULL,则返回null
      抛出:
      SQLException - 如果读取位置位于无效位置;或者如果流中没有更多值。
    • readBlob

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

      此方法不执行类型安全检查以确定返回类型是否为预期类型,因为此责任由SQLData实现实现的UDT映射委托。

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

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

      此方法不执行类型安全检查以确定返回类型是否为预期类型,因为此责任由SQLData实现实现的UDT映射委托。

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

      public Array readArray() throws SQLException
      从流中读取SQL ARRAY值并将其作为Java编程语言中的Array对象返回。

      此方法不执行类型安全检查以确定返回类型是否为预期类型,因为此责任由SQLData实现实现的UDT映射委托。

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

      public boolean wasNull() throws SQLException
      确定从此SQLInputImpl对象最后读取的值是否为null
      指定者:
      wasNull 在接口 SQLInput
      返回:
      如果最近读取的SQL值为null,则返回true;否则返回false;默认情况下将返回false
      抛出:
      SQLException - 如果发生确定最后读取的值是否为null值的错误;
    • readURL

      public URL readURL() throws SQLException
      从流中读取SQL DATALINK值并将其作为Java编程语言中的URL对象返回。

      此方法不执行类型安全检查以确定返回类型是否为预期类型,因为此责任由SQLData实现实现的UDT映射委托。

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

      public NClob readNClob() throws SQLException
      从流中读取SQL NCLOB值并将其作为Java编程语言中的Clob对象返回。
      指定者:
      readNClob 在接口 SQLInput
      返回:
      代表此流头部的SQL NCLOB值数据的NClob对象;如果读取的值为SQL NULL,则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
      自1.6起
      1.6
    • readNString

      public String readNString() throws SQLException
      读取流中的下一个属性并将其作为Java编程语言中的String返回。用于访问NCHARNVARCHARLONGNVARCHAR列时使用。
      指定者:
      readNString 在接口 SQLInput
      返回:
      属性;如果值为SQL NULL,则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
      自1.6起
      1.6
    • readSQLXML

      public SQLXML readSQLXML() throws SQLException
      从流中读取SQL XML值并将其作为Java编程语言中的SQLXML对象返回。
      指定者:
      readSQLXML 在接口 SQLInput
      返回:
      代表此流头部的SQL XML值数据的SQLXML对象;如果读取的值为SQL NULL,则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
      自1.6起
      1.6
    • readRowId

      public RowId readRowId() throws SQLException
      从流中读取SQL ROWID值并将其作为Java编程语言中的RowId对象返回。
      指定由:
      readRowId 在接口 SQLInput
      返回:
      一个代表流头部的SQL ROWID值的RowId对象;如果读取的值是SQL NULL,则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.6