Module java.sql
Package java.sql

Interface SQLInput

所有已知的实现类:
SQLInputImpl

public interface SQLInput
包含表示SQL结构类型实例或SQL不同类型实例的值流的输入流。此接口仅用于自定义映射,由驱动程序在后台使用,程序员永远不会直接调用SQLInput方法。读取器方法(readLongreadBytes等)为SQLData接口的实现提供了一种读取SQLInput对象中的值的方式。正如在SQLData中描述的那样,必须按照它们对应的属性在类型的SQL定义中出现的顺序调用读取器方法。方法wasNull用于确定上次读取的值是否为SQL NULL

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

自版本:
1.2
  • Method Summary

    Modifier and Type
    Method
    Description
    从流中读取一个SQL ARRAY值,并将其作为Java编程语言中的Array对象返回。
    读取流中的下一个属性,并将其作为ASCII字符流返回。
    读取流中的下一个属性,并将其作为Java编程语言中的java.math.BigDecimal对象返回。
    读取流中的下一个属性,并将其作为未解释字节流返回。
    从流中读取一个SQL BLOB值,并将其作为Java编程语言中的Blob对象返回。
    boolean
    读取流中的下一个属性,并将其作为Java编程语言中的boolean返回。
    byte
    读取流中的下一个属性,并将其作为Java编程语言中的byte返回。
    byte[]
    读取流中的下一个属性,并将其作为Java编程语言中的字节数组返回。
    读取流中的下一个属性,并将其作为Unicode字符流返回。
    从流中读取一个SQL CLOB值,并将其作为Java编程语言中的Clob对象返回。
    读取流中的下一个属性,并将其作为java.sql.Date对象返回。
    double
    读取流中的下一个属性,并将其作为Java编程语言中的double返回。
    float
    读取流中的下一个属性,并将其作为Java编程语言中的float返回。
    int
    读取流中的下一个属性,并将其作为Java编程语言中的int返回。
    long
    读取流中的下一个属性,并将其作为Java编程语言中的long返回。
    从流中读取一个SQL NCLOB值,并将其作为Java编程语言中的NClob对象返回。
    读取流中的下一个属性,并将其作为Java编程语言中的String返回。
    读取流头部的数据,并将其作为Java编程语言中的Object返回。
    default <T> T
    readObject(Class<T> type)
    读取流中的下一个属性,并将其作为Java编程语言中的Object返回。
    Ref
    从流中读取一个SQL REF值,并将其作为Java编程语言中的Ref对象返回。
    从流中读取一个SQL ROWID值,并将其作为Java编程语言中的RowId对象返回。
    short
    读取流中的下一个属性,并将其作为Java编程语言中的short返回。
    从流中读取一个SQL XML值,并将其作为Java编程语言中的SQLXML对象返回。
    读取流中的下一个属性,并将其作为Java编程语言中的String返回。
    读取流中的下一个属性,并将其作为java.sql.Time对象返回。
    读取流中的下一个属性,并将其作为java.sql.Timestamp对象返回。
    URL
    从流中读取一个SQL DATALINK值,并将其作为Java编程语言中的java.net.URL对象返回。
    boolean
    检索上次读取的值是否为SQL NULL
  • Method Details

    • readString

      String readString() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的String返回。
      返回:
      属性;如果值为SQL NULL,则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readBoolean

      boolean readBoolean() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的boolean返回。
      返回:
      属性;如果值为SQL NULL,则返回false
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readByte

      byte readByte() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的byte返回。
      返回:
      属性;如果值为SQL NULL,则返回0
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readShort

      short readShort() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的short返回。
      返回:
      属性;如果值为SQL NULL,则返回0
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readInt

      int readInt() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的int返回。
      返回:
      属性;如果值为SQL NULL,则返回0
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readLong

      long readLong() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的long返回。
      返回:
      属性;如果值为SQL NULL,则返回0
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readFloat

      float readFloat() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的float返回。
      返回:
      属性;如果值为SQL NULL,则返回0
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readDouble

      double readDouble() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的double返回。
      返回:
      属性;如果值为SQL NULL,则返回0
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readBigDecimal

      BigDecimal readBigDecimal() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的java.math.BigDecimal对象返回。
      返回:
      属性;如果值为SQL NULL,则返回null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readBytes

      byte[] readBytes() throws SQLException
      读取流中的下一个属性,并将其作为Java编程语言中的字节数组返回。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readDate

      Date readDate() throws SQLException
      从流中读取下一个属性并将其作为 java.sql.Date 对象返回。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readTime

      Time readTime() throws SQLException
      从流中读取下一个属性并将其作为 java.sql.Time 对象返回。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readTimestamp

      Timestamp readTimestamp() throws SQLException
      从流中读取下一个属性并将其作为 java.sql.Timestamp 对象返回。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readCharacterStream

      Reader readCharacterStream() throws SQLException
      从流中读取下一个属性并将其作为Unicode字符流返回。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readAsciiStream

      InputStream readAsciiStream() throws SQLException
      从流中读取下一个属性并将其作为ASCII字符流返回。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readBinaryStream

      InputStream readBinaryStream() throws SQLException
      读取流中头部的数据并将其作为Java编程语言中的 Object 返回。返回的对象的实际类型由默认类型映射和此流的类型映射中存在的任何自定义确定。

      在将流头部的数据为SQL NULL时,该方法返回 null。如果数据为SQL结构化或不同类型,则它确定流头部的数据的SQL类型。如果流的类型映射中有该SQL类型的条目,驱动程序将构造适当类的对象并调用该对象上的方法 SQLData.readSQL,该方法使用为该方法描述的协议从流中读取附加数据。

      Returns:
      the attribute; if the value is SQL NULL, returns null
      Throws:
      SQLException - if a database access error occurs
      SQLFeatureNotSupportedException - if the JDBC driver does not support this method
      Since:
      1.2
    • readObject

      Object readObject() throws SQLException
      Reads the datum at the head of the stream and returns it as an Object in the Java programming language. The actual type of the object returned is determined by the default type mapping, and any customizations present in this stream's type map.

      A type map is registered with the stream by the JDBC driver before the stream is passed to the application.

      When the datum at the head of the stream is an SQL NULL, the method returns null. If the datum is an SQL structured or distinct type, it determines the SQL type of the datum at the head of the stream. If the stream's type map has an entry for that SQL type, the driver constructs an object of the appropriate class and calls the method SQLData.readSQL on that object, which reads additional data from the stream, using the protocol described for that method.

      返回:
      流头部的数据作为Java编程语言中的 Object;如果数据为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readRef

      Ref readRef() throws SQLException
      从流中读取SQL REF 值并将其作为Java编程语言中的 Ref 对象返回。
      返回:
      代表流头部的SQL REF 值的 Ref 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readBlob

      Blob readBlob() throws SQLException
      从流中读取SQL BLOB 值并将其作为Java编程语言中的 Blob 对象返回。
      返回:
      代表流头部的SQL BLOB 值的 Blob 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readClob

      Clob readClob() throws SQLException
      从流中读取SQL CLOB 值并将其作为Java编程语言中的 Clob 对象返回。
      返回:
      代表流头部的SQL CLOB 值的 Clob 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readArray

      Array readArray() throws SQLException
      从流中读取SQL ARRAY 值并将其作为Java编程语言中的 Array 对象返回。
      返回:
      代表流头部的SQL ARRAY 值的 Array 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • wasNull

      boolean wasNull() throws SQLException
      检索最后读取的值是否为SQL NULL
      返回:
      如果最近读取的SQL值为SQL NULL,则返回 true;否则返回 false
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • readURL

      URL readURL() throws SQLException
      从流中读取SQL DATALINK 值并将其作为Java编程语言中的 java.net.URL 对象返回。
      返回:
      一个 java.net.URL 对象。
      抛出:
      SQLException - 如果发生数据库访问错误,或者URL格式不正确
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.4
    • readNClob

      NClob readNClob() throws SQLException
      从流中读取SQL NCLOB 值并将其作为Java编程语言中的 NClob 对象返回。
      返回:
      代表流头部的SQL NCLOB 值的 NClob 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.6
    • readNString

      String readNString() throws SQLException
      从流中读取下一个属性并将其作为Java编程语言中的 String 返回。用于访问 NCHARNVARCHARLONGNVARCHAR 列时使用。
      返回:
      属性;如果值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.6
    • readSQLXML

      SQLXML readSQLXML() throws SQLException
      从流中读取一个SQL XML值,并将其作为Java编程语言中的 SQLXML 对象返回。
      返回:
      一个代表流头部的SQL XML值数据的 SQLXML 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.6
    • readRowId

      RowId readRowId() throws SQLException
      从流中读取一个SQL ROWID值,并将其作为Java编程语言中的 RowId 对象返回。
      返回:
      一个代表流头部的SQL ROWID值数据的 RowId 对象;如果读取的值为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.6
    • readObject

      default <T> T readObject(Class<T> type) throws SQLException
      从流中读取下一个属性,并将其作为Java编程语言中的 Object 返回。返回的对象的实际类型由指定的Java数据类型和此流的类型映射中存在的任何自定义确定。

      在将流传递给应用程序之前,JDBC驱动程序会向流注册类型映射。

      当流头部的属性为SQL NULL时,该方法返回 null。如果属性是SQL结构化或不同类型,则它确定流头部的属性的SQL类型。如果流的类型映射中有该SQL类型的条目,则驱动程序会构造一个适当类的对象,并调用该对象上的方法 SQLData.readSQL,该方法使用为该方法描述的协议从流中读取附加数据。

      默认实现将抛出 SQLFeatureNotSupportedException

      类型参数:
      T - 由此Class对象建模的类的类型
      参数:
      type - 表示要将属性转换为的Java数据类型的Class
      返回:
      作为Java编程语言中的 Object 的流头部的属性;如果属性为SQL NULL,则返回 null
      抛出:
      SQLException - 如果发生数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.8