モジュール java.sql.rowset
パッケージ javax.sql.rowset.serial

クラスSerialArray

java.lang.Object
javax.sql.rowset.serial.SerialArray
すべての実装されたインタフェース:
Serializable, Cloneable, Array

public class SerialArray
extends Object
implements Array, Serializable, Cloneable
Arrayオブジェクトの直列化バージョンであり、Javaプログラミング言語でのSQL ARRAY値のマッピングです。

SerialArrayクラスは、ArrayオブジェクトからSerialArrayインスタンスを作成するためのコンストラクタと、基底型とそのSQL名を取得するためのメソッドと、SerialArrayオブジェクトの一部または全部をコピーするためのメソッドを提供します。

ノート: このクラスを正常に動作させるためには、必要に応じてSQL Arrayオブジェクトを生成する(そのすべての要素をクライアント・サーバーに移動させる)ためにデータ・ソース接続が利用可能である必要があります。 現時点では、ロケータなどのデータ・ソースのデータへの論理ポインタはサポートされていません。

スレッドの安全性

SerialArrayは、複数の並行スレッドによる使用において安全ではありません。 複数のスレッドで使用する場合は、適切な同期処理によってSerialArrayへのアクセスを制御するようにしてください。
導入されたバージョン:
1.5
関連項目:
直列化された形式
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    SerialArray​(Array array)
    指定されたArrayオブジェクトから新しいSerialArrayオブジェクトを構築します。
    SerialArray​(Array array, Map<String,​Class<?>> map)
    要素がSQL UDTであるとき、各要素のカスタム・マッピングに使用される指定の型マップを使って、指定されたArrayオブジェクトから新しいSerialArrayオブジェクトを構築します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    Object clone()
    このSerialArrayのクローンを返します。
    boolean equals​(Object obj)
    このSerialArrayを指定されたオブジェクトと比較します。
    void free()
    このメソッドは、SerialArrayオブジェクトを解放し、保持しているリソースを解放します。
    Object getArray()
    このSerialArrayオブジェクトのコピーである新しい配列を返します。
    Object getArray​(long index, int count)
    このSerialArrayオブジェクトのスライスのコピーとなる新しい配列(指定されたインデックス位置の要素から指定の要素数分続く)を返します。
    Object getArray​(long index, int count, Map<String,​Class<?>> map)
    このSerialArrayオブジェクトのスライスのコピーとなる新しい配列(指定されたインデックス位置の要素から指定の要素数分続く)を返します。
    Object getArray​(Map<String,​Class<?>> map)
    要素がSQL UDTであるとき、各要素のカスタム・マッピングに使用される指定の型マップを使って、このSerialArrayオブジェクトのコピーである新しい配列を返します。
    int getBaseType()
    このSerialArrayオブジェクト内の要素のSQL型を取得します。
    String getBaseTypeName()
    このSerialArrayオブジェクト内に格納された要素のDBMS固有の型名を取得します。
    ResultSet getResultSet()
    このSerialArrayオブジェクトによって表現するARRAY値のすべての要素が格納されているResultSetオブジェクトを取得します。
    ResultSet getResultSet​(long index, int count)
    インデックスindexで始まり、最大でcount個の連続した部分配列の要素が格納されているResultSetオブジェクトを取得します。
    ResultSet getResultSet​(long index, int count, Map<String,​Class<?>> map)
    インデックスindexで始まり、最大でcount個の連続した要素を格納するSerialArrayオブジェクトの要素の部分配列を格納するResultSetオブジェクトを取得します。
    ResultSet getResultSet​(Map<String,​Class<?>> map)
    このSerialArrayオブジェクトによって表現されたSQL ARRAY値のすべての要素を含むResultSetオブジェクトを取得します。
    int hashCode()
    このSerialArrayのハッシュ・コードを返します。

    クラス java.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • SerialArray

      public SerialArray​(Array array, Map<String,​Class<?>> map) throws SerialException, SQLException
      要素がSQL UDTであるとき、各要素のカスタム・マッピングに使用される指定の型マップを使って、指定されたArrayオブジェクトから新しいSerialArrayオブジェクトを構築します。

      このメソッドは、配列要素がUDTで、指定された型マップにUDTのエントリがある場合に、カスタム・マッピングを行います。 カスタム・マッピングは再帰的です。たとえば、SQL構造型のある要素が、それ自体SQL構造型の要素を持つSQL構造型である場合、カスタム・マッピングを持つ各構造型が、指定の型マップに従ってマップされます。

      新しいSerialArrayオブジェクトは、その構築に使用されるArrayオブジェクトと同じ要素を格納します。ただし、基底型がSQL型のSTRUCTARRAYBLOBCLOBDATALINKJAVA_OBJECTである場合を除きます。 この場合、新しいSerialArrayオブジェクト内の各要素は、適切な直列化フォーム、すなわちSerialStructSerialArraySerialBlobSerialClobSerialDatalinkSerialJavaObjectのいずれかのオブジェクトになります。

      ノート: (1) SerialArrayオブジェクトの作成に使用されるArrayオブジェクトは、コンストラクタに渡される前に、クライアントにSQL ARRAY値のデータを渡していなければいけません。 そうしないと、新しいSerialArrayオブジェクトはデータを持たないオブジェクトになります。

      ノート: (2) Arrayjava.sql.Types.JAVA_OBJECT型が格納されている場合、SerialJavaObjectコンストラクタが呼び出され、このオブジェクトが直列化可能であることが確認されます。

      ノート: (3)このコンストラクタに指定されたArrayオブジェクトは、Array.getArray()メソッドに対してnullを返すことはできません。 SerialArrayはnull配列値を直列化できません。

      パラメータ:
      array - 直列化されるArrayオブジェクト
      map - java.util.Mapオブジェクト。オブジェクト内の各エントリは、(1) UDT (SQL構造化型またはSQL DISTINCT型)の完全修飾名を指定するStringオブジェクトと、(2) UDTのマッピング方法を定義するSQLData実装のClassオブジェクトで構成される。 mapパラメータは、BlobClobDATALINKまたはJAVA_OBJECT型に対しては無効。
      例外:
      SerialException - Arrayオブジェクトの直列化時にエラーが発生した場合
      SQLException - データベース・アクセス・エラーが発生した場合、またはarraymapの値がnullの場合
    • SerialArray

      public SerialArray​(Array array) throws SerialException, SQLException
      指定されたArrayオブジェクトから新しいSerialArrayオブジェクトを構築します。

      このコンストラクタは、カスタム・マッピングを行いません。 配列の基底型がSQL構造型であり、カスタム・マッピングが必要な場合は、コンストラクタSerialArray(Array array, Map map)を使用する必要があります。

      新しいSerialArrayオブジェクトは、その構築に使用されるArrayオブジェクトと同じ要素を格納します。ただし、基底型がSQL型のBLOBCLOBDATALINKJAVA_OBJECTである場合を除きます。 この場合、新しいSerialArrayオブジェクト内の各要素は、適切な直列化フォーム、すなわちSerialBlobSerialClobSerialDatalinkSerialJavaObjectのいずれかのオブジェクトになります。

      ノート: (1) SerialArrayオブジェクトの作成に使用されるArrayオブジェクトは、コンストラクタに渡される前に、クライアントにSQL ARRAY値のデータを渡していなければいけません。 そうしないと、新しいSerialArrayオブジェクトはデータを持たないオブジェクトになります。

      ノート: (2)このコンストラクタに指定されたArrayオブジェクトは、Array.getArray()メソッドに対してnullを返すことはできません。 SerialArraynull配列値を直列化できません。

      パラメータ:
      array - 直列化されるArrayオブジェクト
      例外:
      SerialException - Arrayオブジェクトの直列化時にエラーが発生した場合
      SQLException - データベース・アクセス・エラーが発生した場合、またはarrayパラメータがnullの場合。
  • メソッドの詳細

    • free

      public void free() throws SQLException
      このメソッドは、SerialArrayオブジェクトを解放し、保持しているリソースを解放します。 freeメソッドが一度呼び出されたあとは、オブジェクトは無効になります。

      freeを複数回呼び出した場合、2回目以降のfree呼出しは何も行わないものとして扱われます。

      定義:
      free、インタフェース: Array
      例外:
      SQLException - SerialArrayのリソースの解放時にエラーが発生した場合
      導入されたバージョン:
      1.6
    • getArray

      public Object getArray() throws SerialException
      このSerialArrayオブジェクトのコピーである新しい配列を返します。
      定義:
      getArray、インタフェース: Array
      戻り値:
      このSerialArrayオブジェクトのコピーに相当する、Javaプログラミング言語でのObject
      例外:
      SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
    • getArray

      public Object getArray​(Map<String,​Class<?>> map) throws SerialException
      要素がSQL UDTであるとき、各要素のカスタム・マッピングに使用される指定の型マップを使って、このSerialArrayオブジェクトのコピーである新しい配列を返します。

      このメソッドは、配列要素がUDTで、指定された型マップにUDTのエントリがある場合に、カスタム・マッピングを行います。 カスタム・マッピングは再帰的です。たとえば、SQL構造型のある要素が、それ自体SQL構造型の要素を持つSQL構造型である場合、カスタム・マッピングを持つ各構造型が、指定の型マップに従ってマップされます。

      定義:
      getArray、インタフェース: Array
      パラメータ:
      map - java.util.Mapオブジェクト。オブジェクト内の各エントリは、(1) UDTの完全修飾名を指定するStringオブジェクトと、(2) UDTのマッピング方法を定義するSQLData実装のClassオブジェクトで構成される
      戻り値:
      このSerialArrayオブジェクトのコピーに相当する、Javaプログラミング言語でのObject
      例外:
      SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
    • getArray

      public Object getArray​(long index, int count) throws SerialException
      このSerialArrayオブジェクトのスライスのコピーとなる新しい配列(指定されたインデックス位置の要素から指定の要素数分続く)を返します。
      定義:
      getArray、インタフェース: Array
      パラメータ:
      index - このSerialArrayオブジェクト内で、最初の要素がコピーされる位置を表すインデックス。最初の要素のインデックスは0
      count - コピーされる連続した要素数。指定されたインデックス位置から開始される
      戻り値:
      このSerialArrayオブジェクト内の指定された要素のコピーに相当する、Javaプログラミング言語でのObject
      例外:
      SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
    • getArray

      public Object getArray​(long index, int count, Map<String,​Class<?>> map) throws SerialException
      このSerialArrayオブジェクトのスライスのコピーとなる新しい配列(指定されたインデックス位置の要素から指定の要素数分続く)を返します。

      このメソッドは、配列要素がUDTで、指定された型マップにUDTのエントリがある場合に、カスタム・マッピングを行います。 カスタム・マッピングは再帰的です。たとえば、SQL構造型のある要素が、それ自体SQL構造型の要素を持つSQL構造型である場合、カスタム・マッピングを持つ各構造型が、指定の型マップに従ってマップされます。

      定義:
      getArray、インタフェース: Array
      パラメータ:
      index - このSerialArrayオブジェクト内で、最初の要素がコピーされる位置を表すインデックス。配列内の最初の要素のインデックスは0
      count - コピーされる連続した要素数。指定されたインデックス位置から開始される
      map - java.util.Mapオブジェクト。オブジェクト内の各エントリは、(1) UDTの完全修飾名を指定するStringオブジェクトと、(2) UDTのマッピング方法を定義するSQLData実装のClassオブジェクトで構成される
      戻り値:
      このSerialArrayオブジェクト内の指定された要素のコピーに相当する、Javaプログラミング言語でのObject
      例外:
      SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
    • getBaseType

      public int getBaseType() throws SerialException
      このSerialArrayオブジェクト内の要素のSQL型を取得します。 返されるintは、java.sql.Typesクラスの定数の1つです。
      定義:
      getBaseType、インタフェース: Array
      戻り値:
      java.sql.Types内の定数の1つ。このSerialArrayオブジェクト内の要素のSQL型を表す
      例外:
      SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
    • getBaseTypeName

      public String getBaseTypeName() throws SerialException
      このSerialArrayオブジェクト内に格納された要素のDBMS固有の型名を取得します。
      定義:
      getBaseTypeName、インタフェース: Array
      戻り値:
      このSerialArrayオブジェクトの基底型の、DBMSによって使用されるSQL型名
      例外:
      SerialException - エラーが発生した場合、またはこのオブジェクトでfreeが以前呼び出された場合
    • getResultSet

      public ResultSet getResultSet​(long index, int count) throws SerialException
      インデックスindexで始まり、最大でcount個の連続した部分配列の要素が格納されているResultSetオブジェクトを取得します。 マップに基底型のエントリが格納されている場合、このメソッドは接続の型マップを使って配列の要素をマッピングします。 そうでない場合は、標準のマップが使われます。
      定義:
      getResultSet、インタフェース: Array
      パラメータ:
      index - このSerialArrayオブジェクト内で、最初の要素がコピーされる位置を表すインデックス。配列内の最初の要素のインデックスは0
      count - コピーされる連続した要素数。指定されたインデックス位置から開始される
      戻り値:
      このSerialArrayオブジェクト内の指定の要素を格納するResultSetオブジェクト。各要素は別々の行に示される
      例外:
      SerialException - 原因がUnsupportedOperationExceptionに設定された状態で呼び出された場合
    • getResultSet

      public ResultSet getResultSet​(Map<String,​Class<?>> map) throws SerialException
      このSerialArrayオブジェクトによって表現されたSQL ARRAY値のすべての要素を含むResultSetオブジェクトを取得します。 このメソッドは、指定されたmapを型マップのカスタマイズに使用します。ただし配列の基底型がmapのユーザー定義型(UDT)と一致しない場合は、かわりに標準のマップが使用されます。 このバージョンのgetResultSetメソッドは、指定された型マップか、標準マップのどちらかを使用します。接続に関連した型マップは使われません。
      定義:
      getResultSet、インタフェース: Array
      パラメータ:
      map - java.util.Mapオブジェクト。オブジェクト内の各エントリは、(1) UDTの完全修飾名を指定するStringオブジェクトと、(2) UDTのマッピング方法を定義するSQLData実装のClassオブジェクトで構成される
      戻り値:
      このSerialArrayオブジェクト内のすべての要素を格納するResultSetオブジェクト。各要素は別々の行に示される
      例外:
      SerialException - 原因がUnsupportedOperationExceptionに設定された状態で呼び出された場合
    • getResultSet

      public ResultSet getResultSet() throws SerialException
      このSerialArrayオブジェクトによって表現するARRAY値のすべての要素が格納されているResultSetオブジェクトを取得します。 該当する場合は、配列の要素が接続の型マップを使用してマッピングされます。そうでない場合は、標準のマップが使用されます。
      定義:
      getResultSet、インタフェース: Array
      戻り値:
      このSerialArrayオブジェクト内のすべての要素を格納するResultSetオブジェクト。各要素は別々の行に示される
      例外:
      SerialException - 原因がUnsupportedOperationExceptionに設定された状態で呼び出された場合
    • getResultSet

      public ResultSet getResultSet​(long index, int count, Map<String,​Class<?>> map) throws SerialException
      インデックスindexで始まり、最大でcount個の連続した要素を格納するSerialArrayオブジェクトの要素の部分配列を格納するResultSetオブジェクトを取得します。 このメソッドは、指定されたmapを型マップのカスタマイズに使用します。ただし配列の基底型がmapのユーザー定義型(UDT)と一致しない場合は、かわりに標準のマップが使用されます。 このバージョンのgetResultSetメソッドは、指定された型マップか、標準マップのどちらかを使用します。接続に関連した型マップは使われません。
      定義:
      getResultSet、インタフェース: Array
      パラメータ:
      index - このSerialArrayオブジェクト内で、最初の要素がコピーされる位置を表すインデックス。配列内の最初の要素のインデックスは0
      count - コピーされる連続した要素数。指定されたインデックス位置から開始される
      map - java.util.Mapオブジェクト。オブジェクト内の各エントリは、(1) UDTの完全修飾名を指定するStringオブジェクトと、(2) UDTのマッピング方法を定義するSQLData実装のClassオブジェクトで構成される
      戻り値:
      このSerialArrayオブジェクト内の指定の要素を格納するResultSetオブジェクト。各要素は別々の行に示される
      例外:
      SerialException - 原因がUnsupportedOperationExceptionに設定された状態で呼び出された場合
    • equals

      public boolean equals​(Object obj)
      このSerialArrayを指定されたオブジェクトと比較します。 引数がnullでなく、このオブジェクトと同じ要素を持つ SerialArrayオブジェクトである場合にのみ、結果は trueになります
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - このSerialArrayと比較するオブジェクト
      戻り値:
      指定されたオブジェクトがこのSerialArrayに等しいSerialArrayを表す場合はtrue、それ以外の場合はfalse
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      public int hashCode()
      このSerialArrayのハッシュ・コードを返します。 SerialArrayオブジェクトのハッシュ・コードは、SerialArrayオブジェクトの各要素のハッシュ・コードを使用して計算されます。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • clone

      public Object clone()
      このSerialArrayのクローンを返します。 コピーは、このSerialArrayオブジェクトのベースとなるオブジェクト配列のクローンへの参照を保持するのであって、元のベースとなるオブジェクト配列への参照を保持するわけではありません。
      オーバーライド:
      clone、クラス: Object
      戻り値:
      このSerialArrayのクローン
      関連項目:
      Cloneable