请参见:
描述
类摘要 | |
---|---|
SerialArray | 序列化的 Array 对象,它是 SQL ARRAY 值在 Java 编程语言中的映射关系。 |
SerialBlob | SQL BLOB 值在 Java 编程语言中的序列化映射关系。 |
SerialClob | SQL CLOB 值在 Java 编程语言中的序列化映射关系。 |
SerialDatalink | SQL DATALINK 值在 Java 编程语言中的序列化映射关系。 |
SerialJavaObject | SQL JAVA_OBJECT 值在 Java 编程语言中的可序列化映射关系。 |
SerialRef | Ref 对象的序列化映射关系,它是 SQL REF 值在 Java 编码语言中的映射关系。 |
SerialStruct | SQL 结构类型在 Java 编程语言中的序列化映射关系。 |
SQLInputImpl | 用于自定义映射用户定义类型 (UDT) 的输入流。 |
SQLOutputImpl | 用于将自定义映射的用户定义类型 (UDT) 的属性写回数据库的输出流。 |
异常摘要 | |
---|---|
SerialException | 指示对 SQL 类型 BLOB 、CLOB 、STRUCT 或 ARRAY 以及 SQL 类型 DATALINK 和 JAVAOBJECT 进行序列化或反序列化时发生的错误。 |
提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。
标准的 JDBC RowSet
实现可以使用这些实用工具类协助序列化非连接 RowSet
对象。这一点有助于将非连接 RowSet 对象通过导线传输到另一个 VM 或者在应用程序中跨层传输。
RowSet
实现可以使用
RowSet.getURL() 方法来获取
java.net.URL
对象,该对象可用于操作外部数据。
Map
对象传递给其中一个构造方法或
getAttributes
方法,则根据在
Map
对象中指定的映射关系对结构类型进行自定义映射。
wasNull
用于确定读取的最后一个值是否是 SQL NULL。
Map
对象的构造方法或获取方法时,JDBC 驱动程序调用
SQLData.getSQLType 方法来确定将自定义映射的 UDT SQL 类型。驱动程序创建一个
SQLInputImpl
实例,并用 UDT 的属性填充它。然后,驱动程序将输入流传递给
SQLData.readSQL 方法,该方法依次调用
SQLInputImpl 方法从输入流读取属性。
SQLOutputImpl
的实例并将其传递给
SQLData.writeSQL 方法。
writeSQL
方法依次调用适当的
SQLOutputImpl 写入方法,从
SQLData
对象以 SQL 用户定义类型的表示形式将数据写入
SQLOutputImpl
输出流。
程序员通过实现 SQLData
接口定义映射关系。例如,如果名为 AUTHORS 的 SQL 结构类型具有属性 NAME、TITLE 和 PUBLISHER,则其可以被映射为名为 Authors 的 Java 类。Authors 类可以具有字段 name、title 和 publisher,AUTHORS 的属性将被映射到这些字段。在这种情况下,SQLData
的实现可能如下所示:
public class Authors implements SQLData { public String name; public String title; public String publisher; private String sql_type; public String getSQLTypeName() { return sql_type; } public void readSQL(SQLInput stream, String type) throws SQLException { sql_type = type; name = stream.readString(); title = stream.readString(); publisher = stream.readString(); } public void writeSQL(SQLOutput stream) throws SQLException { stream.writeString(name); stream.writeString(title); stream.writeString(publisher); } }
java.util.Map
对象用于将 SQL 结构类型与其到
Authors
类的映射关系相关联。以下代码片段展示了一种创建
Map
对象并为其提供一个关联
AUTHORS
和
Authors
的条目的方式。
java.util.Map map = new java.util.HashMap(); map.put("SCHEMA_NAME.AUTHORS", Class.forName("Authors");
Map
对象
map 现在包含一个具有 SQL 结构类型的完全限定名的条目和
Authors
类的
Class
对象。可以将其传递给某个方法,以告知驱动程序将
AUTHORS
映射到
Authors
的方式。
对于未连接 RowSet
对象,仅在将 Map
对象传递给将执行自定义映射的方法或构造方法时,才可以完成自定义映射。对于连接 RowSet
对象,情况则不同,因为它们维持着与数据源的连接。执行自定义映射并由未连接 RowSet
对象调用的方法可能使用与正在使用的 Connection
对象关联的 Map
对象。因此,换句话说,如果没有指定任何映射,则默认情况下可以使用连接的类型映射。