模块  java.sql.rowset

Class SQLOutputImpl

  • 实现的所有接口
    SQLOutput

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

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

    从以下版本开始:
    1.5
    • 构造方法摘要

      构造方法  
      构造器 描述
      SQLOutputImpl​(Vector<?> attributes, Map<String,​?> map)
      创建使用给定的属性向量和类型映射初始化的新 SQLOutputImpl对象。
    • 方法摘要

      所有方法  实例方法 具体的方法 
      变量和类型 方法 描述
      void writeArray​(Array x)
      将Java编程语言中的 Array对象写入此 SQLOutputImpl对象。
      void writeAsciiStream​(InputStream x)
      将ASCII字符流写入此 SQLOutputImpl对象。
      void writeBigDecimal​(BigDecimal x)
      将Java编程语言中的 java.math.BigDecimal对象写入此 SQLOutputImpl对象。
      void writeBinaryStream​(InputStream x)
      将未解释的字节流写入此 SQLOutputImpl对象。
      void writeBlob​(Blob x)
      将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 writeCharacterStream​(Reader x)
      将Unicode字符流写入此 SQLOutputImpl对象。
      void writeClob​(Clob x)
      将Java编程语言中的 Clob对象写入此 SQLOutputImpl对象。
      void writeDate​(Date x)
      将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 writeNClob​(NClob x)
      将SQL NCLOB值写入流。
      void writeNString​(String x)
      将下一个属性作为Java编程语言中的 String写入流中。
      void writeObject​(SQLData x)
      将给定的 SQLData对象中包含的数据写入流。
      void writeRef​(Ref x)
      将Java编程语言中的 Ref对象写入此 SQLOutputImpl对象。
      void writeRowId​(RowId x)
      将SQL ROWID值写入流。
      void writeShort​(short x)
      将Java编程语言中的 short写入此 SQLOutputImpl对象。
      void writeSQLXML​(SQLXML x)
      将SQL XML值写入流。
      void writeString​(String x)
      将Java编程语言中的 String写入此 SQLOutputImpl对象。
      void writeStruct​(Struct x)
      将Java编程语言中的 Struct对象写入此 SQLOutputImpl对象。
      void writeTime​(Time x)
      将Java编程语言中的 java.sql.Time对象写入此 SQLOutputImpl对象。
      void writeTimestamp​(Timestamp x)
      将Java编程语言中的 java.sql.Timestamp对象写入此 SQLOutputImpl对象。
      void writeURL​(URL url)
      将Java编程语言中的 java.sql.Type.DATALINK对象写入此 SQLOutputImpl对象。
    • 构造方法详细信息

      • SQLOutputImpl

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

      • writeString

        public void writeString​(String x)
                         throws SQLException
        将Java编程语言中的String写入此SQLOutputImpl对象。 驱动程序将它转换为SQL CHARVARCHAR ,或LONGVARCHAR将其返回到数据库之前。
        Specified by:
        writeString在接口 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeBoolean

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

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

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

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

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

        public void writeFloat​(float x)
                        throws SQLException
        将Java编程语言中的float写入此SQLOutputImpl对象。 在将其返回到数据库之前,驱动程序将其转换为SQL REAL
        Specified by:
        writeFloat在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeDouble

        public void writeDouble​(double x)
                         throws SQLException
        将Java编程语言中的double写入此SQLOutputImpl对象。 在将其返回到数据库之前,驱动程序将其转换为SQL DOUBLE
        Specified by:
        writeDouble在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeBigDecimal

        public void writeBigDecimal​(BigDecimal x)
                             throws SQLException
        将Java编程语言中的java.math.BigDecimal对象写入此SQLOutputImpl对象。 在将其返回到数据库之前,驱动程序将其转换为SQL NUMERIC
        Specified by:
        writeBigDecimal在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeBytes

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

        public void writeDate​(Date x)
                       throws SQLException
        将Java编程语言中的java.sql.Date对象写入此SQLOutputImpl对象。 在将其返回到数据库之前,驱动程序将其转换为SQL DATE
        Specified by:
        writeDate在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeTime

        public void writeTime​(Time x)
                       throws SQLException
        将Java编程语言中的java.sql.Time对象写入此SQLOutputImpl对象。 在将其返回到数据库之前,驱动程序将其转换为SQL TIME
        Specified by:
        writeTime在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeTimestamp

        public void writeTimestamp​(Timestamp x)
                            throws SQLException
        将Java编程语言中的java.sql.Timestamp对象写入此SQLOutputImpl对象。 在将其返回到数据库之前,驱动程序将其转换为SQL TIMESTAMP
        Specified by:
        writeTimestamp在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeCharacterStream

        public void writeCharacterStream​(Reader x)
                                  throws SQLException
        将Unicode字符流写入此SQLOutputImpl对象。 驱动程序将执行从Unicode到数据库CHAR格式的任何必要转换。
        Specified by:
        writeCharacterStream在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeAsciiStream

        public void writeAsciiStream​(InputStream x)
                              throws SQLException
        将ASCII字符流写入此SQLOutputImpl对象。 驱动程序将执行从ASCII到数据库CHAR格式的任何必要转换。
        Specified by:
        writeAsciiStream在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeBinaryStream

        public void writeBinaryStream​(InputStream x)
                               throws SQLException
        将未解释的字节流写入此 SQLOutputImpl对象。
        Specified by:
        writeBinaryStream在界面 SQLOutput
        参数
        x - 要传递给数据库的值
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeObject

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

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

        Specified by:
        writeObject在界面 SQLOutput
        参数
        x - 表示SQL结构化或不同类型的数据的对象
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeRef

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

        public void writeBlob​(Blob x)
                       throws SQLException
        将Java编程语言中的Blob对象写入此SQLOutputImpl对象。 驱动程序将它转换成一个序列化SerialBlob SQL BLOB将其返回到数据库之前的值。
        Specified by:
        writeBlob在界面 SQLOutput
        参数
        x - 表示SQL BLOB值的对象
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeClob

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

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

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

        Specified by:
        writeStruct在界面 SQLOutput
        参数
        x - 表示SQL结构类型的属性的对象
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeArray

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

        public void writeURL​(URL url)
                      throws SQLException
        将Java编程语言中的java.sql.Type.DATALINK对象写入此SQLOutputImpl对象。 驱动程序将此值转换为串行化SerialDatalink SQL DATALINK前值使其返回到数据库中。
        Specified by:
        writeURL在界面 SQLOutput
        参数
        url - 表示SQL DATALINK值的对象
        异常
        SQLException - 如果尝试将UDT的属性值写入数据库的 SQLOutputImpl对象正在使用 SQLData对象。
      • writeNString

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

        public void writeNClob​(NClob x)
                        throws SQLException
        将SQL NCLOB值写入流。
        Specified by:
        writeNClob在界面 SQLOutput
        参数
        x - 表示SQL NCLOB值的数据的 NClob对象
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6
      • writeRowId

        public void writeRowId​(RowId x)
                        throws SQLException
        将SQL ROWID值写入流。
        Specified by:
        writeRowId在界面 SQLOutput
        参数
        x - 表示SQL ROWID值的数据的 RowId对象
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6
      • writeSQLXML

        public void writeSQLXML​(SQLXML x)
                         throws SQLException
        将SQL XML值写入流。
        Specified by:
        writeSQLXML接口 SQLOutput
        参数
        x - 表示SQL XML值的数据的 SQLXML对象
        异常
        SQLException - 如果发生数据库访问错误
        从以下版本开始:
        1.6