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.readSQL
和 SQLData.writeSQL
方法。readSQL
方法调用适当的 SQLInput
方法从 SQLInput
对象读取每个属性,writeSQL
方法调用 SQLOutput
方法通过 SQLOutput
对象将每个属性写回数据源。
应用程序员通常不直接调用 SQLData
方法,而 SQLInput
和 SQLOutput
方法由 SQLData
方法而不是应用程序代码在内部调用。
方法摘要 | |
---|---|
String |
getSQLTypeName() 返回此对象表示的 SQL 用户定义类型的完全限定名。 |
void |
readSQL(SQLInput stream, String typeName) 用从数据库读取的数据填充此对象。 |
void |
writeSQL(SQLOutput stream) 将此对象写入给定的 SQL 数据流,同时将其转换回数据源中它的 SQL 值。 |
方法详细信息 |
---|
String getSQLTypeName() throws SQLException
SQLData
的这一实例。
readSQL
的类型名称
SQLException
- 如果发生数据库访问错误
SQLFeatureNotSupportedException
- 如果 JDBC 不支持此方法
void readSQL(SQLInput stream, String typeName) throws SQLException
readSQL
方法将数据分配给(此对象或其他对象的)适当字段或元素。明确地说,它必须调用适当的 reader 方法(SQLInput.readString
、SQLInput.readBigDecimal
等)来执行以下操作:对于不同类型,读取其单个数据元素;对于结构类型,读取 SQL 类型的每个属性的值。 SQLInput
reader 方法使用。
stream
-
SQLInput
对象,从中读取要自定义映射的值的数据
typeName
- 数据流上的值的 SQL 类型名称
SQLException
- 如果发生数据库访问错误
SQLFeatureNotSupportedException
- 如果 JDBC 不支持此方法
SQLInput
void writeSQL(SQLOutput stream) throws SQLException
SQLOutput
writer 方法(
writeInt
、
writeString
等)来执行以下操作:对于不同类型,写入其单个数据元素;对于结构类型,写入 SQL 类型的每个属性的值。
stream
-
SQLOutput
对象,要在其中写入自定义映射的值的数据
SQLException
- 如果发生数据库访问错误
SQLFeatureNotSupportedException
- 如果 JDBC 不支持此方法
SQLOutput