- すべての実装されたインタフェース:
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オブジェクトを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 Objectclone()このSerialArrayのクローンを返します。booleanequals(Object obj)このSerialArrayを指定されたオブジェクトと比較します。voidfree()このメソッドは、SerialArrayオブジェクトを解放し、保持しているリソースを解放します。ObjectgetArray()このSerialArrayオブジェクトのコピーである新しい配列を返します。ObjectgetArray(long index, int count)このSerialArrayオブジェクトのスライスのコピーとなる新しい配列(指定されたインデックス位置の要素から指定の要素数分続く)を返します。ObjectgetArray(long index, int count, Map<String,Class<?>> map)このSerialArrayオブジェクトのスライスのコピーとなる新しい配列(指定されたインデックス位置の要素から指定の要素数分続く)を返します。ObjectgetArray(Map<String,クラス<?>> map)要素がSQL UDTであるとき、各要素のカスタム・マッピングに使用される指定の型マップを使って、このSerialArrayオブジェクトのコピーである新しい配列を返します。intgetBaseType()このSerialArrayオブジェクト内の要素のSQL型を取得します。StringgetBaseTypeName()このSerialArrayオブジェクト内に格納された要素のDBMS固有の型名を取得します。ResultSetgetResultSet()このSerialArrayオブジェクトによって表現するARRAY値のすべての要素が格納されているResultSetオブジェクトを取得します。ResultSetgetResultSet(long index, int count)インデックスindexで始まり、最大でcount個の連続した部分配列の要素が格納されているResultSetオブジェクトを取得します。ResultSetgetResultSet(long index, int count, Map<String,Class<?>> map)インデックスindexで始まり、最大でcount個の連続した要素を格納するSerialArrayオブジェクトの要素の部分配列を格納するResultSetオブジェクトを取得します。ResultSetgetResultSet(Map<String,クラス<?>> map)このSerialArrayオブジェクトによって表現されたSQLARRAY値のすべての要素を含むResultSetオブジェクトを取得します。inthashCode()このSerialArrayのハッシュ・コードを返します。
-
コンストラクタの詳細
-
SerialArray
public SerialArray(Array array, Map<String,Class<?>> map) throws SerialException, SQLException要素がSQL UDTであるとき、各要素のカスタム・マッピングに使用される指定の型マップを使って、指定されたArrayオブジェクトから新しいSerialArrayオブジェクトを構築します。このメソッドは、配列要素がUDTで、指定された型マップにUDTのエントリがある場合に、カスタム・マッピングを行います。 カスタム・マッピングは再帰的です。たとえば、SQL構造型のある要素が、それ自体SQL構造型の要素を持つSQL構造型である場合、カスタム・マッピングを持つ各構造型が、指定の型マップに従ってマップされます。
新しい
SerialArrayオブジェクトは、その構築に使用されるArrayオブジェクトと同じ要素を格納します。ただし、基底型がSQL型のSTRUCT、ARRAY、BLOB、CLOB、DATALINK、JAVA_OBJECTである場合を除きます。 この場合、新しいSerialArrayオブジェクト内の各要素は、適切な直列化フォーム、すなわちSerialStruct、SerialArray、SerialBlob、SerialClob、SerialDatalink、SerialJavaObjectのいずれかのオブジェクトになります。注: (1)
SerialArrayオブジェクトの作成に使用されるArrayオブジェクトは、コンストラクタに渡される前に、クライアントにSQLARRAY値のデータを渡していなければいけません。 そうしないと、新しいSerialArrayオブジェクトはデータを持たないオブジェクトになります。注: (2)
Arrayにjava.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パラメータは、Blob、Clob、DATALINKまたはJAVA_OBJECT型に対しては無効。- 例外:
SerialException-Arrayオブジェクトの直列化時にエラーが発生した場合SQLException- データベース・アクセス・エラーが発生した場合、またはarrayかmapの値がnullの場合
-
SerialArray
public SerialArray(Array array) throws SerialException, SQLException指定されたArrayオブジェクトから新しいSerialArrayオブジェクトを構築します。このコンストラクタは、カスタム・マッピングを行いません。 配列の基底型がSQL構造型であり、カスタム・マッピングが必要な場合は、コンストラクタ
SerialArray(Array array, Map map)を使用する必要があります。新しい
SerialArrayオブジェクトは、その構築に使用されるArrayオブジェクトと同じ要素を格納します。ただし、基底型がSQL型のBLOB、CLOB、DATALINK、JAVA_OBJECTである場合を除きます。 この場合、新しいSerialArrayオブジェクト内の各要素は、適切な直列化フォーム、すなわちSerialBlob、SerialClob、SerialDatalink、SerialJavaObjectのいずれかのオブジェクトになります。注: (1)
SerialArrayオブジェクトの作成に使用されるArrayオブジェクトは、コンストラクタに渡される前に、クライアントにSQLARRAY値のデータを渡していなければいけません。 そうしないと、新しいSerialArrayオブジェクトはデータを持たないオブジェクトになります。注: (2)このコンストラクタに指定された
Arrayオブジェクトは、Array.getArray()メソッドに対してnullを返すことはできません。SerialArrayはnull配列値を直列化できません。- パラメータ:
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オブジェクト内で、最初の要素がコピーされる位置を表すインデックス。最初の要素のインデックスは0count- コピーされる連続した要素数。指定されたインデックス位置から開始される- 戻り値:
- この
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オブジェクト内で、最初の要素がコピーされる位置を表すインデックス。配列内の最初の要素のインデックスは0count- コピーされる連続した要素数。指定されたインデックス位置から開始される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オブジェクト内で、最初の要素がコピーされる位置を表すインデックス。配列内の最初の要素のインデックスは0count- コピーされる連続した要素数。指定されたインデックス位置から開始される- 戻り値:
- この
SerialArrayオブジェクト内の指定の要素を格納するResultSetオブジェクト。各要素は別々の行に示される - 例外:
SerialException- 原因がUnsupportedOperationExceptionに設定された状態で呼び出された場合
-
getResultSet
public ResultSet getResultSet(Map<String,Class<?>> map) throws SerialExceptionこのSerialArrayオブジェクトによって表現されたSQLARRAY値のすべての要素を含む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オブジェクト内で、最初の要素がコピーされる位置を表すインデックス。配列内の最初の要素のインデックスは0count- コピーされる連続した要素数。指定されたインデックス位置から開始される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オブジェクトのベースとなるオブジェクト配列のクローンへの参照を保持するのであって、元のベースとなるオブジェクト配列への参照を保持するわけではありません。
-