Module  java.sql.rowset

Class SQLOutputImpl

  • All Implemented Interfaces:
    SQLOutput


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

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

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

      构造方法  
      Constructor 描述
      SQLOutputImpl​(Vector<?> attributes, Map<String,?> map)
      创建一个新的 SQLOutputImpl对象,使用给定的属性向量进行初始化,并输入map。
    • 方法摘要

      所有方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      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)
      bytes的Java编程语言的数组写入此 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对象,使用给定的属性向量初始化并输入map。 驱动程序将使用类型映射来确定要调用哪个SQLData.writeSQL方法。 然后,该方法将按顺序调用相应的SQLOutputImpl写入器方法,从而将属性写入新的输出流。
        参数
        attributes - 包含要映射到Java编程语言中的一个或多个对象的UDT的属性的 Vector对象
        map - 一个包含零个或多个条目的 java.util.Map对象,每个条目由1) String给出UDT的完全限定名称,以及2) Class对象,用于定义如何映射UDT的 SQLData实现
        异常
        SQLException - 如果 attributesmapnull
    • 方法详细信息

      • writeString

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public void writeBinaryStream​(InputStream x)
                               throws SQLException
        将一串未解释的字节写入此 SQLOutputImpl对象。
        Specified by:
        writeBinaryStream在接口 SQLOutput
        参数
        x - 传递给数据库的值
        异常
        SQLException -如果 SQLOutputImpl对象正在使用由 SQLData对象尝试将UDT的属性值写入数据库。
      • 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 -如果 SQLOutputImpl对象正在使用由 SQLData对象尝试将UDT的属性值写入数据库。
      • writeRef

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

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

        public void writeClob​(Clob x)
                       throws SQLException
        将Java编程语言中的一个Clob对象写入此SQLOutputImpl对象。 驱动程序将其转换为可序列化的SerialClob SQL CLOB值,然后将其返回到数据库。
        Specified by:
        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

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

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