Module java.sql
Package java.sql

Interface SQLData


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

通常,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
  • Method Summary

    Modifier and Type
    Method
    Description
    返回此对象表示的SQL用户定义类型的完全限定名称。
    void
    readSQL(SQLInput stream, String typeName)
    使用从数据库读取的数据填充此对象。
    void
    writeSQL(SQLOutput stream)
    将此对象写入给定的SQL数据流,将其转换回数据源中的SQL值。
  • Method Details

    • 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方法将数据分配给适当的字段或元素(此对象或其他对象的字段)。具体来说,它必须调用适当的reader方法(SQLInput.readStringSQLInput.readBigDecimal等)来执行以下操作:对于DISTINCT类型,读取其单个数据元素;对于结构化类型,为SQL类型的每个属性读取一个值。
      JDBC驱动程序在调用此方法之前使用类型映射初始化输入流,该类型映射由流上的适当SQLInput读取器方法使用。
      参数:
      stream - 用于读取正在自定义映射的值的数据的SQLInput对象
      typeName - 数据流上值的SQL类型名称
      抛出:
      SQLException - 如果存在数据库访问错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
      参见:
    • writeSQL

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