Module java.sql.rowset

Class SQLOutputImpl

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

public class SQLOutputImpl extends Object implements SQLOutput
用于将自定义映射的用户定义类型(UDT)的属性写回数据库的输出流。驱动程序在内部使用此接口,其方法永远不会被应用程序员直接调用。

当应用程序调用方法PreparedStatement.setObject时,驱动程序会检查要写入的值是否是具有自定义映射的UDT。如果是,则类型映射中将包含实现此UDT的SQLDataClass对象的条目。如果要写入的值是SQLData的实例,则驱动程序将创建一个SQLOutputImpl的实例并将其传递给方法SQLData.writeSQL。然后,方法writeSQL会调用适当的SQLOutputImpl.writeXXX方法,将SQLData对象中的数据写入SQLOutputImpl输出流,作为SQL用户定义类型的表示。

自从:
1.5
  • Constructor Summary

    Constructors
    Constructor
    Description
    SQLOutputImpl(Vector<?> attributes, Map<String,?> map)
    创建一个使用给定属性向量和类型映射初始化的新SQLOutputImpl对象。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    将Java编程语言中的Array对象写入此SQLOutputImpl对象。
    void
    将ASCII字符流写入此SQLOutputImpl对象。
    void
    将Java编程语言中的java.math.BigDecimal对象写入此SQLOutputImpl对象。
    void
    将未解释的字节流写入此SQLOutputImpl对象。
    void
    将Java编程语言中的Blob对象写入此SQLOutputImpl对象。
    void
    writeBoolean(boolean x)
    将Java编程语言中的boolean写入此SQLOutputImpl对象。
    void
    writeByte(byte x)
    将Java编程语言中的byte写入此SQLOutputImpl对象。
    void
    writeBytes(byte[] x)
    将Java编程语言中的bytes数组写入此SQLOutputImpl对象。
    void
    将Unicode字符流写入此SQLOutputImpl对象。
    void
    将Java编程语言中的Clob对象写入此SQLOutputImpl对象。
    void
    将Java编程语言中的java.sql.Date对象写入此SQLOutputImpl对象。
    void
    writeDouble(double x)
    将Java编程语言中的double写入此SQLOutputImpl对象。
    void
    writeFloat(float x)
    将Java编程语言中的float写入此SQLOutputImpl对象。
    void
    writeInt(int x)
    将Java编程语言中的int写入此SQLOutputImpl对象。
    void
    writeLong(long x)
    将Java编程语言中的long写入此SQLOutputImpl对象。
    void
    将SQL NCLOB值写入流中。
    void
    将下一个属性作为Java编程语言中的String写入流中。
    void
    将给定的SQLData对象中包含的数据写入流中。
    void
    将Java编程语言中的Ref对象写入此SQLOutputImpl对象。
    void
    将SQL ROWID值写入流中。
    void
    writeShort(short x)
    将Java编程语言中的short写入此SQLOutputImpl对象。
    void
    将SQL XML值写入流中。
    void
    将Java编程语言中的String写入此SQLOutputImpl对象。
    void
    将Java编程语言中的Struct对象写入此SQLOutputImpl对象。
    void
    将Java编程语言中的java.sql.Time对象写入此SQLOutputImpl对象。
    void
    将Java编程语言中的java.sql.Timestamp对象写入此SQLOutputImpl对象。
    void
    writeURL(URL url)
    将Java编程语言中的java.sql.Type.DATALINK对象写入此SQLOutputImpl对象。

    Methods declared in class java.lang.Object

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

    Methods declared in interface java.sql.SQLOutput

    writeObject
  • Constructor Details

    • SQLOutputImpl

      public SQLOutputImpl(Vector<?> attributes, Map<String,?> map) throws SQLException
      创建一个使用给定属性向量和类型映射初始化的新SQLOutputImpl对象。驱动程序将使用类型映射来确定要调用哪个SQLData.writeSQL方法。然后,此方法将按顺序调用适当的SQLOutputImpl写入方法,从而将属性写入新的输出流。
      参数:
      attributes - 包含要映射到Java编程语言中一个或多个对象的UDT属性的Vector对象
      map - 包含零个或多个条目的java.util.Map对象,每个条目由1)给出UDT的完全限定名称的String和2)定义如何映射UDT的SQLData实现的Class对象组成
      抛出:
      SQLException - 如果attributesmapnull
  • Method Details

    • writeString

      public void writeString(String x) throws SQLException
      将Java编程语言中的String写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL CHARVARCHARLONGVARCHAR
      指定者:
      writeString 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用
    • writeBoolean

      public void writeBoolean(boolean x) throws SQLException
      将Java编程语言中的boolean写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL BIT
      指定者:
      writeBoolean 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用
    • writeByte

      public void writeByte(byte x) throws SQLException
      将Java编程语言中的byte写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL BIT
      指定者:
      writeByte 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用
    • writeShort

      public void writeShort(short x) throws SQLException
      将Java编程语言中的short写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL SMALLINT
      指定者:
      writeShort 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用
    • writeInt

      public void writeInt(int x) throws SQLException
      将Java编程语言中的int写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL INTEGER
      指定者:
      writeInt 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用
    • writeLong

      public void writeLong(long x) throws SQLException
      将Java编程语言中的long写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL BIGINT
      指定者:
      writeLong 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用
    • writeFloat

      public void writeFloat(float x) throws SQLException
      将Java编程语言中的float写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL REAL
      指定者:
      writeFloat 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeDouble

      public void writeDouble(double x) throws SQLException
      将Java编程语言中的double写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL DOUBLE
      指定者:
      writeDouble 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeBigDecimal

      public void writeBigDecimal(BigDecimal x) throws SQLException
      将Java编程语言中的java.math.BigDecimal对象写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL NUMERIC
      指定者:
      writeBigDecimal 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeBytes

      public void writeBytes(byte[] x) throws SQLException
      将Java编程语言中的bytes数组写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL VARBINARYLONGVARBINARY
      指定者:
      writeBytes 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeDate

      public void writeDate(Date x) throws SQLException
      将Java编程语言中的java.sql.Date对象写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL DATE
      指定者:
      writeDate 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeTime

      public void writeTime(Time x) throws SQLException
      将Java编程语言中的java.sql.Time对象写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL TIME
      指定者:
      writeTime 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeTimestamp

      public void writeTimestamp(Timestamp x) throws SQLException
      将Java编程语言中的java.sql.Timestamp对象写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为SQL TIMESTAMP
      指定者:
      writeTimestamp 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeCharacterStream

      public void writeCharacterStream(Reader x) throws SQLException
      将Unicode字符流写入此SQLOutputImpl对象。驱动程序将必要的Unicode到数据库CHAR格式的转换。
      指定者:
      writeCharacterStream 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeAsciiStream

      public void writeAsciiStream(InputStream x) throws SQLException
      将ASCII字符流写入此SQLOutputImpl对象。驱动程序将必要的ASCII到数据库CHAR格式的转换。
      指定者:
      writeAsciiStream 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeBinaryStream

      public void writeBinaryStream(InputStream x) throws SQLException
      将未解释的字节流写入此SQLOutputImpl对象。
      指定者:
      writeBinaryStream 在接口 SQLOutput
      参数:
      x - 要传递到数据库的值
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeObject

      public void writeObject(SQLData x) throws SQLException
      将给定的SQLData对象中包含的数据写入流。当SQLData对象为null时,此方法将在流中写入SQL NULL。否则,它调用给定对象的SQLData.writeSQL方法,该方法将对象的属性写入流。

      方法SQLData.writeSQ的实现调用适当的SQLOutputImpl.writeXXX方法,以按顺序写入对象的每个属性。这些属性必须从SQLInput输入流中读取,并按照用户定义类型的SQL定义中列出的顺序写入到SQLOutputImpl输出流中。

      指定者:
      writeObject 在接口 SQLOutput
      参数:
      x - 表示SQL结构化或不同类型数据的对象
      抛出:
      SQLException - 如果SQLOutputImpl对象正在被尝试将UDT的属性值写入数据库的SQLData对象使用。
    • writeRef

      public void writeRef(Ref x) throws SQLException
      将Java编程语言中的Ref对象写入此SQLOutputImpl对象。驱动程序在将其返回到数据库之前将其转换为可序列化的SerialRef SQL REF值。
      指定者:
      writeRef 在接口 SQLOutput
      参数:
      x - 表示 SQL REF 值的对象
      抛出:
      SQLException - 如果 SQLOutputImpl 对象正在被 SQLData 对象使用,尝试将 UDT 的属性值写入数据库。
    • writeBlob

      public void writeBlob(Blob x) throws SQLException
      将 Java 编程语言中的 Blob 对象写入此 SQLOutputImpl 对象。驱动程序在将其返回到数据库之前将其转换为可序列化的 SerialBlob SQL BLOB 值。
      指定者:
      writeBlob 在接口 SQLOutput
      参数:
      x - 表示 SQL BLOB 值的对象
      抛出:
      SQLException - 如果 SQLOutputImpl 对象正在被 SQLData 对象使用,尝试将 UDT 的属性值写入数据库。
    • writeClob

      public void writeClob(Clob x) throws SQLException
      将 Java 编程语言中的 Clob 对象写入此 SQLOutputImpl 对象。驱动程序在将其返回到数据库之前将其转换为可序列化的 SerialClob SQL CLOB 值。
      指定者:
      writeClob 在接口 SQLOutput
      参数:
      x - 表示 SQL CLOB 值的对象
      抛出:
      SQLException - 如果 SQLOutputImpl 对象正在被 SQLData 对象使用,尝试将 UDT 的属性值写入数据库。
    • writeStruct

      public void writeStruct(Struct x) throws SQLException
      将 Java 编程语言中的 Struct 对象写入此 SQLOutputImpl 对象。驱动程序在将其返回到数据库之前将此值转换为 SQL 结构化类型。

      当 SQL 结构化类型已映射到 Java 编程语言中的 Struct 对象(标准映射)时,应使用此方法。如果 SQL 结构化类型已自定义映射到 Java 编程语言中的类,则应使用方法 writeObject

      指定者:
      writeStruct 在接口 SQLOutput
      参数:
      x - 表示 SQL 结构化类型的属性的对象
      抛出:
      SQLException - 如果 SQLOutputImpl 对象正在被 SQLData 对象使用,尝试将 UDT 的属性值写入数据库。
    • writeArray

      public void writeArray(Array x) throws SQLException
      将 Java 编程语言中的 Array 对象写入此 SQLOutputImpl 对象。驱动程序在将其返回到数据库之前将此值转换为可序列化的 SerialArray SQL ARRAY 值。
      指定者:
      writeArray 在接口 SQLOutput
      参数:
      x - 表示 SQL ARRAY 值的对象
      抛出:
      SQLException - 如果 SQLOutputImpl 对象正在被 SQLData 对象使用,尝试将 UDT 的属性值写入数据库。
    • writeURL

      public void writeURL(URL url) throws SQLException
      将 Java 编程语言中的 java.sql.Type.DATALINK 对象写入此 SQLOutputImpl 对象。驱动程序在将其返回到数据库之前将此值转换为可序列化的 SerialDatalink SQL DATALINK 值。
      指定者:
      writeURL 在接口 SQLOutput
      参数:
      url - 表示 SQL DATALINK 值的对象
      抛出:
      SQLException - 如果 SQLOutputImpl 对象正在被 SQLData 对象使用,尝试将 UDT 的属性值写入数据库。
    • writeNString

      public void writeNString(String x) throws SQLException
      将下一个属性作为 Java 编程语言中的 String 写入流。当驱动程序将其发送到流时,将其转换为 SQL NCHARNVARCHARLONGNVARCHAR 值(取决于参数相对于驱动程序对 NVARCHAR 值的限制的大小)。
      指定者:
      writeNString 在接口 SQLOutput
      参数:
      x - 要传递给数据库的值
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.6
    • writeNClob

      public void writeNClob(NClob x) throws SQLException
      将 SQL NCLOB 值写入流。
      指定者:
      writeNClob 在接口 SQLOutput
      参数:
      x - 表示 SQL NCLOB 值数据的 NClob 对象
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.6
    • writeRowId

      public void writeRowId(RowId x) throws SQLException
      将 SQL ROWID 值写入流。
      指定者:
      writeRowId 在接口 SQLOutput
      参数:
      x - 表示 SQL ROWID 值数据的 RowId 对象
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.6
    • writeSQLXML

      public void writeSQLXML(SQLXML x) throws SQLException
      将 SQL XML 值写入流。
      指定者:
      writeSQLXML 在接口 SQLOutput
      参数:
      x - 表示 SQL XML 值数据的 SQLXML 对象
      抛出:
      SQLException - 如果发生数据库访问错误
      自:
      1.6