模块  java.sql
软件包  java.sql

Interface SQLData


  • public interface SQLData
    用于将SQL用户定义类型(UDT)自定义映射到Java编程语言中的类的接口。 实现SQLData接口的类的类对象将与相应的Connection对象的类型映射以及自定义映射的UDT的SQL名称一起输入。

    通常, SQLData实现将为SQL结构类型的每个属性定义字段,或为SQL DISTINCT类型定义单个字段。 使用ResultSet.getObject方法从数据源检索UDT时,它将映射为此类的实例。 程序员可以像在Java编程语言中的任何其他对象一样操作此类实例,然后通过调用PreparedStatement.setObject方法存储对其进行的任何更改,该方法将其映射回SQL类型。

    预计用于自定义映射的类的实现将由工具完成。 在典型的实现中,程序员只需提供SQL UDT的名称,它所映射到的类的名称,以及UDT的每个属性要映射到的字段的名称。 该工具将使用此信息来实现SQLData.readSQLSQLData.writeSQL方法。 readSQL方法调用适当的SQLInput方法从SQLInput对象读取每个属性, writeSQL方法调用SQLOutput方法通过SQLOutput对象将每个属性写回数据源。

    应用程序员通常不直接调用SQLData方法, SQLInputSQLOutput方法由SQLData方法内部调用,而不是由应用程序代码调用。

    从以下版本开始:
    1.2
    • 方法详细信息

      • getSQLTypeName

        String getSQLTypeName()
                       throws SQLException
        返回此对象表示的SQL用户定义类型的完全限定名称。 JDBC驱动程序调用此方法以获取正在映射到此实例SQLData的UDT实例的名称。
        结果
        构造和填充此对象时传递给方法 readSQL的类型名称
        异常
        SQLException - 如果存在数据库访问错误
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
      • readSQL

        void readSQL​(SQLInput stream,
                     String typeName)
              throws SQLException
        使用从数据库中读取的数据填充此对象。 该方法的实现必须遵循以下协议:
        • 它必须从给定的输入流中读取SQL类型的每个属性或元素。 这是通过调用输入流的方法来读取每个项目,按照它们出现在类型的SQL定义中的顺序来完成的。
        • 然后,方法readSQL将数据分配给(该或其他对象的)适当的字段或元素。 具体而言,它必须调用相应的读取器方法( SQLInput.readStringSQLInput.readBigDecimal ,等等)方法(S)执行以下操作:针对不同类型,读取其单个数据元素; 对于结构化类型,请读取SQL类型的每个属性的值。
        JDBC驱动程序在调用此方法之前使用类型映射初始化输入流,该方法由流上的相应SQLInput读取器方法使用。
        参数
        stream - SQLInput读取正在自定义映射的值的数据的 SQLInput对象
        typeName - 数据流上值的SQL类型名称
        异常
        SQLException - 如果存在数据库访问错误
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
        另请参见:
        SQLInput
      • writeSQL

        void writeSQL​(SQLOutput stream)
               throws SQLException
        将此对象写入给定的SQL数据流,将其转换回数据源中的SQL值。 该方法的实现必须遵循以下协议:
        它必须将SQL类型的每个属性写入给定的输出流。 这是通过调用输出流的方法来按照它们出现在类型的SQL定义中的顺序来编写每个项目来完成的。 具体而言,它必须调用适当SQLOutput写入器方法(一个或多个)( writeIntwriteString ,等等),以执行以下操作:对的独特的类型,写入其单个数据元素; 对于结构化类型,为SQL类型的每个属性写一个值。
        参数
        stream - 要为自定义映射的值写入数据的 SQLOutput对象
        异常
        SQLException - 如果存在数据库访问错误
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
        另请参见:
        SQLOutput