JavaTM Platform
Standard Ed. 6

java.sql
インタフェース SQLData


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

メソッドの概要
 String getSQLTypeName()
          このオブジェクトが表す SQL ユーザー定義型の完全指定名を返します。
 void readSQL(SQLInput stream, String typeName)
          データベースから読み出したデータをこのオブジェクトに設定します。
 void writeSQL(SQLOutput stream)
          このオブジェクトをデータソースの SQL 値に変換し、指定された SQL データストリームに書き込みます。
 

メソッドの詳細

getSQLTypeName

String getSQLTypeName()
                      throws SQLException
このオブジェクトが表す SQL ユーザー定義型の完全指定名を返します。このメソッドは、SQLData のこのインスタンスにマッピングされる UDT インスタンスの名前を取得するために JDBC ドライバによって呼び出されます。

戻り値:
このオブジェクトが生成され、値が設定されたときに readSQL メソッドに渡された型名
例外:
SQLException - データベースアクセスエラーがある場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
1.2

readSQL

void readSQL(SQLInput stream,
             String typeName)
             throws SQLException
データベースから読み出したデータをこのオブジェクトに設定します。このメソッドの実装は次のプロトコルに従う必要があります。 JDBC ドライバは、型マップを使って入力ストリームを初期化してから、ストリームで対応する SQLInput reader メソッドによって使用されるこのメソッドを呼び出します。

パラメータ:
stream - カスタムマッピングされるデータの値を読み出す SQLInput オブジェクト
typeName - データストリームの値の SQL 型名
例外:
SQLException - データベースアクセスエラーがある場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
1.2
関連項目:
SQLInput

writeSQL

void writeSQL(SQLOutput stream)
              throws SQLException
このオブジェクトをデータソースの SQL 値に変換し、指定された SQL データストリームに書き込みます。このメソッドの実装はこのプロトコルに従う必要があります。
指定された出力ストリームに SQL 型の各属性を書き込む必要があります。これは、型の SQL 定義に表示される順番で出力ストリームのメソッドを呼び出して各項目を書き込むことによって行われます。具体的には、該当する SQLOutput writer メソッド (writeIntwriteString など) を呼び出して次の処理を行う必要があります。個別の型の場合は単一のデータ要素を書き込み、構造化型の場合は SQL 型の各属性の値を書き込みます。

パラメータ:
stream - カスタムマッピングされたデータの値を書き込む SQLOutput オブジェクト
例外:
SQLException - データベースアクセスエラーがある場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
1.2
関連項目:
SQLOutput

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。