public interface SQLData
SQLユーザー定義型(UDT)をJavaプログラミング言語のクラスにカスタム・マッピングするのに使用されるインタフェースです。
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
メソッドによって内部的に呼び出されます。
- 導入されたバージョン:
- 1.2
-
メソッドのサマリー
-
メソッドの詳細
-
getSQLTypeName
String getSQLTypeName() throws SQLExceptionこのオブジェクトが表すSQLユーザー定義型の完全指定名を返します。 このメソッドは、SQLData
のこのインスタンスにマッピングされるUDTインスタンスの名前を取得するためにJDBCドライバによって呼び出されます。- 戻り値:
- このオブジェクトが生成され、値が設定されたときに
readSQL
メソッドに渡された型名 - 例外:
SQLException
- データベース・アクセス・エラーがある場合SQLFeatureNotSupportedException
- JDBCドライバがこのメソッドをサポートしない場合- 導入されたバージョン:
- 1.2
-
readSQL
void readSQL(SQLInput stream, String typeName) throws SQLException データベースから読み出したデータをこのオブジェクトに設定します。 このメソッドの実装は次のプロトコルに従う必要があります。- 指定された入力ストリームからSQL型の各属性または各要素を読み出す必要があります。 これは、型のSQL定義に現れる順序で入力ストリームのメソッドを呼び出して各項目を読み出すことによって行われます。
- 続いて
readSQL
メソッドが、このオブジェクトまたはほかのオブジェクトの適切なフィールドまたは要素にデータを割り当てます。 具体的には、該当するreaderメソッド(SQLInput.readString
、SQLInput.readBigDecimal
など)を呼び出して次の処理を行う必要があります。個別の型の場合はその単一のデータ要素を読み込み、構造化型の場合はSQL型の各属性の値を読み込みます。
SQLInput
readerメソッドによって使用されるこのメソッドを呼び出します。- パラメータ:
stream
- カスタム・マッピングされる値のデータを読み込むSQLInput
オブジェクトtypeName
- データ・ストリームの値のSQL型名- 例外:
SQLException
- データベース・アクセス・エラーがある場合SQLFeatureNotSupportedException
- JDBCドライバがこのメソッドをサポートしない場合- 導入されたバージョン:
- 1.2
- 関連項目:
-
writeSQL
void writeSQL(SQLOutput stream) throws SQLException このオブジェクトをデータ・ソースのSQL値に変換し、指定されたSQLデータ・ストリームに書き込みます。 このメソッドの実装は次のプロトコルに従う必要があります。
指定された出力ストリームにSQL型の各属性を書き込む必要があります。 これは、型のSQL定義に表示される順番で出力ストリームのメソッドを呼び出して各項目を書き込むことによって行われます。 具体的には、該当するSQLOutput
writerメソッド(writeInt
、writeString
など)を呼び出して次の処理を行う必要があります。個別の型の場合は単一のデータ要素を書き込み、構造化型の場合はSQL型の各属性の値を書き込みます。- パラメータ:
stream
- カスタム・マッピングされた値のデータを書き込むSQLOutput
オブジェクト- 例外:
SQLException
- データベース・アクセス・エラーがある場合SQLFeatureNotSupportedException
- JDBCドライバがこのメソッドをサポートしない場合- 導入されたバージョン:
- 1.2
- 関連項目:
-