-
public interface SQLData
用于将SQL用户定义类型(UDT)自定义映射到Java编程语言中的类的接口。 实现SQLData
接口的类的类对象将被输入到相应的Connection
对象的类型映射以及作为自定义映射的UDT的SQL名称。通常,
SQLData
实现将为SQL结构化类型的每个属性或SQLDISTINCT
类型的单个字段定义一个字段。 当使用ResultSet.getObject
方法从数据源检索UDT时,它将被映射为此类的实例。 程序员可以像Java编程语言中的任何其他对象一样对该类实例进行操作,然后通过调用PreparedStatement.setObject
方法存储对其进行的任何更改,将其映射到SQL类型。预期自定义映射的类的实现将由一个工具完成。 在典型的实现中,程序员将简单地提供SQL UDT的名称,它被映射到的类的名称以及要映射UDT的每个属性的字段的名称。 该工具将使用此信息来实现
SQLData.readSQL
和SQLData.writeSQL
方法。readSQL
方法调用适当的SQLInput
方法从SQLInput
对象读取每个属性,writeSQL
方法调用SQLOutput
方法通过SQLOutput
对象将每个属性写回数据源。应用程序员通常不会直接调用
SQLData
方法,而SQLInput
和SQLOutput
方法在内部由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.readString
,SQLInput.readBigDecimal
,等等)方法(S)执行以下操作:针对不同类型,读取其单个数据元素; 对于结构化类型,读取SQL类型的每个属性的值。
SQLInput
中适当的SQLInput
读取器方法使用。- 参数
-
stream
- 要从中读取正在自定义映射的值的数据的SQLInput
对象 -
typeName
- 数据流上的值的SQL类型名称 - 异常
-
SQLException
- 如果有数据库访问错误 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
- 另请参见:
-
SQLInput
-
writeSQL
void writeSQL(SQLOutput stream) throws SQLException
将此对象写入给定的SQL数据流,将其转换回数据源中的SQL值。 该方法的实现必须遵循以下协议:
它必须将SQL类型的每个属性写入给定的输出流。 这是通过调用输出流的方法来编写每个项,按照它们在类型的SQL定义中出现的顺序来完成。 具体而言,它必须调用适当SQLOutput
作家方法(一个或多个)(writeInt
,writeString
,等等),以执行以下操作:对的独特的类型,写入其单个数据元素; 对于结构类型,为SQL类型的每个属性写入一个值。- 参数
-
stream
- 要为自定义映射的值写入数据的SQLOutput
对象 - 异常
-
SQLException
- 如果有数据库访问错误 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
- 另请参见:
-
SQLOutput
-
-