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 ドライバがこのメソッドをサポートしない場合SQLInput
void 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.