Module  java.sql.rowset

Class SQLInputImpl

  • All Implemented Interfaces:
    SQLInput


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

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

    SQLInputImpl类提供了一组类似于ResultSet吸气剂方法的读取器方法。 这些方法可以读取SQLInputImpl对象中的值。

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

    当方法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​()
      从流中读取SQL ARRAY值,并将其作为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​()
      从流中读取SQL NCLOB值,并将其作为Java编程语言中的 Clob对象返回。
      String readNString​()
      读取流中的下一个属性,并将其作为Java编程语言中的 String返回。
      Object readObject​()
      Object的Java编程语言 ObjectSQLInputImpl对象的头部的值。
      Ref readRef​()
      以该Java编程语言的 SQLInputImpl对象的形式 RefSQLInputImpl对象的头部的值。
      RowId readRowId​()
      从流中读取SQL ROWID值,并将其作为Java编程语言中的 RowId对象返回。
      short readShort​()
      将这个 SQLInputImpl对象中的下一个属性作为Java编程语言中的 short
      SQLXML readSQLXML​()
      从流中读取SQL XML值,并将其作为Java编程语言中的 SQLXML对象返回。
      String readString​()
      将该 SQLInputImpl对象中的下一个属性作为Java编程语言中的 String
      Time readTime​()
      将此 SQLInputImpl对象中的下一个属性检索为 java.sql.Time对象。
      Timestamp readTimestamp​()
      将此 SQLInputImpl对象中的下一个属性检索为 java.sql.Timestamp对象。
      URL readURL​()
      从流中读取SQL DATALINK值,并将其作为Java编程语言中的 URL对象返回。
      boolean wasNull​()
      确定从该 SQLInputImpl对象读取的最后一个值是否为 null
    • 构造方法详细信息

      • 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 - 如果 attributesmapnull
    • 方法详细信息

      • 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如果值为SQL NULL
        异常
        SQLException - 如果读取位置位于无效位置; 或者如果流中没有其他值。
      • readRef

        public Ref readRef​()
                    throws SQLException
        以该Java编程语言的 SQLInputImpl对象的形式 RefSQLInputImpl对象的头部的值。
        Specified by:
        readRef在接口 SQLInput
        结果
        一个Ref对象,表示流头上的SQL REF值; 如果值为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对象,表示流的头部的SQL CLOB值; 如果值为SQL NULL ,则返回null
        异常
        SQLException - 如果读取位置位于无效位置; 或者如果流中没有其他值。
      • readArray

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

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

        Specified by:
        readArray在接口 SQLInput
        结果
        一个Array对象,表示流的头部的SQL ARRAY值; *如果值为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
        从流中读取SQL DATALINK值,并将其作为Java编程语言中的URL对象返回。

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

        Specified by:
        readURL在接口 SQLInput
        结果
        一个URL对象,表示流头上的SQL DATALINK值; *如果值为SQL NULL ,则返回null
        异常
        SQLException - 如果读取位置位于无效位置; 或者如果流中没有其他值。
      • readNClob

        public NClob readNClob​()
                        throws SQLException
        从流中读取SQL NCLOB值,并将其作为Java编程语言中的 Clob对象返回。
        Specified by:
        readNClob在接口 SQLInput
        结果
        一个NClob对象,表示流头部的SQL NCLOB值的数据; null如果读取的值是SQL NULL
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6
      • readNString

        public String readNString​()
                           throws SQLException
        读取流中的下一个属性,并将其作为Java编程语言中的String返回。 访问时,它适用于使用NCHARNVARCHARLONGNVARCHAR列。
        Specified by:
        readNString在接口 SQLInput
        结果
        属性; 如果值为SQL NULL ,则返回null
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6
      • readSQLXML

        public SQLXML readSQLXML​()
                          throws SQLException
        从流中读取SQL XML值,并将其作为Java编程语言中的 SQLXML对象返回。
        Specified by:
        readSQLXML在接口 SQLInput
        结果
        一个SQLXML对象,表示流头上的SQL XML值的数据; null如果读取的值是SQL NULL
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6
      • readRowId

        public RowId readRowId​()
                        throws SQLException
        从流中读取SQL ROWID值,并将其作为Java编程语言中的 RowId对象返回。
        Specified by:
        readRowId在接口 SQLInput
        结果
        表示流头部的SQL ROWID值的数据的RowId对象; null如果读取的值是SQL NULL
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6