java.sql

接口
异常
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

方法摘要
 String getSQLTypeName()
          返回此对象表示的 SQL 用户定义类型的完全限定名。
 void readSQL(SQLInput stream, String typeName)
          用从数据库读取的数据填充此对象。
 void writeSQL(SQLOutput stream)
          将此对象写入给定的 SQL 数据流,同时将其转换回数据源中它的 SQL 值。
 

方法详细信息

getSQLTypeName

String getSQLTypeName()
                      throws SQLException
返回此对象表示的 SQL 用户定义类型的完全限定名。JDBC 驱动程序调用此方法来获取 UDT 实例的名称,该名称将被映射到 SQLData 的这一实例。

返回:
构造和填充此对象时传递到方法 readSQL 的类型名称
抛出:
SQLException - 如果发生数据库访问错误
SQLFeatureNotSupportedException - 如果 JDBC 不支持此方法
从以下版本开始:
1.2

readSQL

void readSQL(SQLInput stream,
             String typeName)
             throws SQLException
用从数据库读取的数据填充此对象。该方法的实现必须遵守此协议:
  • 必须从给定输入流读取 SQL 类型的每个属性或元素。此操作通过调用输入流的某个方法读取每个项(按照它们在类型的 SQL 定义中显示的顺序)。
  • 然后,readSQL 方法将数据分配给(此对象或其他对象的)适当字段或元素。明确地说,它必须调用适当的 reader 方法(SQLInput.readStringSQLInput.readBigDecimal 等)来执行以下操作:对于不同类型,读取其单个数据元素;对于结构类型,读取 SQL 类型的每个属性的值。
JDBC 驱动程序在调用此方法之前用类型映射初始化输入流,此方法由流上适当的 SQLInput reader 方法使用。

参数:
stream - SQLInput 对象,从中读取要自定义映射的值的数据
typeName - 数据流上的值的 SQL 类型名称
抛出:
SQLException - 如果发生数据库访问错误
SQLFeatureNotSupportedException - 如果 JDBC 不支持此方法
从以下版本开始:
1.2
另请参见:
SQLInput

writeSQL

void writeSQL(SQLOutput stream)
              throws SQLException
将此对象写入给定的 SQL 数据流,同时将其转换回数据源中它的 SQL 值。方法的实现必须遵守此协议:
必须将 SQL 类型的每个属性写入给定的输出流。此操作通过调用输出流的某个方法写入每个项(按照它们在类型的 SQL 定义中显示的顺序)。明确地说,它必须调用适当的 SQLOutput writer 方法( writeIntwriteString 等)来执行以下操作:对于不同类型,写入其单个数据元素;对于结构类型,写入 SQL 类型的每个属性的值。

参数:
stream - SQLOutput 对象,要在其中写入自定义映射的值的数据
抛出:
SQLException - 如果发生数据库访问错误
SQLFeatureNotSupportedException - 如果 JDBC 不支持此方法
从以下版本开始:
1.2
另请参见:
SQLOutput