|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
参照先:
説明
| クラスの概要 | |
|---|---|
| SerialArray | Array オブジェクトの直列化バージョンであり、Java プログラミング言語での SQL ARRAY 値のマッピングです。 |
| SerialBlob | Java プログラミング言語での SQL BLOB 値の直列化マッピングです。 |
| SerialClob | Java プログラミング言語での SQL CLOB 値の直列化マッピングです。 |
| SerialDatalink | Java プログラミング言語での SQL DATALINK 値の直列化マッピングです。 |
| SerialJavaObject | Java プログラミング言語での SQL JAVA_OBJECT 値の直列化可能マッピングです。 |
| SerialRef | Ref オブジェクトの直列化マッピングであり、Java プログラミング言語での SQL REF 値のマッピングです。 |
| SerialStruct | Java プログラミング言語での SQL 構造型の直列化マッピングです。 |
| SQLInputImpl | ユーザー定義型 (UDT) のカスタムマッピング用入力ストリームです。 |
| SQLOutputImpl | カスタムマップされたユーザー定義型 (UDT) の属性をデータベースに再度書き込むための出力ストリームです。 |
| 例外の概要 | |
|---|---|
| SerialException | DATALINK や JAVAOBJECT に加えて、BLOB、CLOB、STRUCT、ARRAY などの SQL 型の直列化または直列化復元時のエラーを示します。 |
Java プログラミング言語での SQL 型とデータ型の直列化可能マッピングを可能にするユーティリティークラスを提供します。
標準 JDBC RowSet 実装は、これらのユーティリティークラスを、未接続の RowSet オブジェクトを直列化するための補助として利用できます。未接続の RowSet を回線経由で別の VM に転送したり、アプリケーション内のレイヤ間で転送したりする場合に便利です。
RowSet 実装は、RowSet.getURL() メソッドを使って、外部データの操作用の java.net.URL オブジェクトを取得できます。Map オブジェクトがいずれかのコンストラクタまたは getAttributes メソッドに渡される場合、構造型は、Map オブジェクトに指定されたマッピングに従って、カスタムマップされます。wasNull メソッドが使用されます。Map オブジェクトを取るコンストラクタまたは取得メソッドが呼び出されると、JDBC ドライバは SQLData.getSQLType メソッドを呼び出して、カスタムマップされる UDT の SQL 型を確定します。ドライバは、SQLInputImpl のインスタンスを作成し、UDT の属性を移植します。続いて、入力ストリームを SQLData.readSQL メソッドに渡します。 すると、このメソッドは、SQLInputImpl メソッドを呼び出して、入力ストリームから属性を読み取ります。 writeSQL メソッドによって適切な SQLOutputImpl ライターメソッドが呼び出され、SQLData オブジェクトから SQLOutputImpl 出力ストリームに、SQL ユーザー定義型の表現としてデータが書き込まれます。
プログラマは、SQLData インタフェースを実装することにより、マッピングを定義します。たとえば、NAME、TITLE、PUBLISHER の各属性を持つ、AUTHORS という SQL 構造型があるとします。この SQL 構造型は、Authors という名前の Java クラスにマップされます。Authors クラスには、AUTHORS の各属性に対応するフィールド、name、title、publisher を持たせることができます。この場合、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 オブジェクトを使用します。つまり、マップを指定しない場合、デフォルトとして接続の型マップが使用されます。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。