public interface SQLData
SQLData インタフェースを実装するクラスのクラスオブジェクトは、カスタムマッピングされる UDT の SQL 名とともに適切な Connection オブジェクトの型マップに入力されます。
通常 SQLData 実装は、SQL 構造化型の各属性のフィールド、または SQL DISTINCT 型の単一フィールドを定義します。ResultSet.getObject メソッドによってデータソースから UDT が取得されると、その UDT はこのクラスのインスタンスとしてマッピングされます。プログラマは、Java プログラミング言語のほかのオブジェクトの場合と同じようにこのクラスインスタンスで操作し、PreparedStatement.setObject メソッドを呼び出して、行なった変更をこのクラスインスタンスに保存することができます。このメソッドは、このクラスインスタンスを SQL 型にマッピングし直します。
カスタムマッピングのクラスの実装をツールによって行うことが期待できます。通常の実装では、プログラマは単に SQL UDT の名前、その名前がマッピングされるクラスの名前、および UDT の各属性がマッピングされるフィールドの名前を指定するだけです。ツールはこの情報を使って SQLData.readSQL メソッドおよび SQLData.writeSQL メソッドを実装します。readSQL メソッドが該当の SQLInput メソッドを呼び出して SQLInput オブジェクトから各属性を読み込み、writeSQL メソッドが SQLOutput メソッドを呼び出して SQLOutput オブジェクトを使って各属性をデータソースに書き込みます。
通常アプリケーションプログラマが SQLData メソッドを直接呼び出すことはなく、SQLInput メソッドおよび SQLOutput メソッドは、アプリケーションコードによってではなく SQLData メソッドによって内部的に呼び出されます。
String getSQLTypeName() throws SQLException
SQLData のこのインスタンスにマッピングされる UDT インスタンスの名前を取得するために JDBC ドライバによって呼び出されます。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 ドライバがこのメソッドをサポートしない場合SQLInputvoid writeSQL(SQLOutput stream) throws SQLException
SQLOutput writer メソッド (writeInt、writeString など) を呼び出して次の処理を行う必要があります。個別の型の場合は単一のデータ要素を書き込み、構造化型の場合は SQL 型の各属性の値を書き込みます。stream - カスタムマッピングされた値のデータを書き込む SQLOutput オブジェクトSQLException - データベースアクセスエラーがある場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合SQLOutput バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.