モジュール java.sql
パッケージ 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
        データベースから読み出したデータをこのオブジェクトに設定します。 このメソッドの実装は次のプロトコルに従う必要があります。
        • 指定された入力ストリームからSQL型の各属性または各要素を読み出す必要があります。 これは、型のSQL定義に現れる順序で入力ストリームのメソッドを呼び出して各項目を読み出すことによって行われます。
        • 続いてreadSQLメソッドが、このオブジェクトまたはほかのオブジェクトの適切なフィールドまたは要素にデータを割り当てます。 具体的には、該当するreaderメソッド(SQLInput.readStringSQLInput.readBigDecimalなど)を呼び出して次の処理を行う必要があります。個別の型の場合はその単一のデータ要素を読み込み、構造化型の場合はSQL型の各属性の値を読み込みます。
        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