public interface Joinable
Joinable
インタフェースは、一致列の取得と設定のメソッドを提供します。これはRowSet
オブジェクトをJoinRowSet
オブジェクトに追加することによって形成されるSQL JOIN
の形成の基礎となります。
標準RowSet
実装は、JoinRowSet
オブジェクトに追加するために、Joinable
インタフェースを実装できます。このインタフェースを実装すると、RowSet
オブジェクトで、一致列の設定、取得、情報の取得ができるJoinable
メソッドを使用できるようになります。アプリケーションはJoinable
インタフェースを実装していないRowSet
オブジェクトをJoinRowSet
オブジェクトに追加できますが、このためには、RowSet
オブジェクトと一致列の両方、またはRowSet
オブジェクトの配列と一致列の配列の両方をとるいずれかのJoinRowSet.addRowSet
メソッドを使用する必要があります。
Joinable
インタフェースのメソッドにアクセスするには、RowSet
オブジェクトで5つの標準RowSet
インタフェースのうち少なくとも1つのインタフェースを実装し、さらにJoinable
インタフェースも実装します。また、ほとんどのRowSet
オブジェクトはBaseRowSet
クラスを拡張します。たとえば、
class MyRowSetImpl extends BaseRowSet implements CachedRowSet, Joinable { : : }
Joinable
インタフェース内のメソッドで、RowSet
オブジェクトは、一致列(SQL JOIN
のベースとなる列)の設定、一致列の取得、または一致列の設定解除を行います。これらのメソッドを実装するクラスのインスタンスをJoinRowSet
オブジェクトに追加することで、SQL JOIN
関係を確立できます。
CachedRowSet crs = new MyRowSetImpl(); crs.populate((ResultSet)rs); (Joinable)crs.setMatchColumnIndex(1); JoinRowSet jrs = new JoinRowSetImpl(); jrs.addRowSet(crs);前述の例では、crsが
Joinable
インタフェースを実装したCachedRowSet
オブジェクトです。次の例のcrs2はJoinableインタフェースを実装していないため、addRowSet
メソッドの引数として一致列を指定する必要があります。この例では、列1を一致列としています。
CachedRowSet crs2 = new MyRowSetImpl(); crs2.populate((ResultSet)rs); JoinRowSet jrs2 = new JoinRowSetImpl(); jrs2.addRowSet(crs2, 1);
JoinRowSet
インタフェースの利用により、単一の表にまとめられた1つ以上のRowSet
オブジェクトからデータを取得できるようになります。このとき、データベースとの接続を作成する必要はありません。そのため、未接続のRowSet
オブジェクトで使用することに適しています。それでも、接続しているかどうかに関係なく、すべてのRowSet
オブジェクトがこのインタフェースを実装できます。常にデータ・ソースに接続されているJdbcRowSet
オブジェクトは、JoinRowSet
オブジェクトに含めなくても、直接SQL JOIN
に含めることができます。
setMatchColumn
メソッドに渡されるインデックス配列は、設定される一致列の数(配列の長さ)と、マッチングに使用される列を示します。たとえば、
int[] i = {1, 2, 4, 7}; // indicates four match columns, with column // indexes 1, 2, 4, 7 participating in the JOIN. Joinable.setMatchColumn(i);後続の一致列は、次のように別の
Joinable
オブジェクト(Joinable
インタフェースを実装しているRowSet
オブジェクト)に追加できます。
int[] w = {3, 2, 5, 3}; Joinable2.setMatchColumn(w);複数の
RowSet
オブジェクトをJoinRowSet
オブジェクトに追加するとき、配列インデックスの順序は特に重要です。配列の各インデックスは、以前に追加したRowSet
オブジェクトの対応するインデックスと直接対応します。オーバーラップやアンダーラップが発生した場合、一致列のデータは、Joinable
を実装したRowSetが追加されたイベント内に保持され、一致列データに関連付ける必要があります。したがって、アプリケーションは、複数の一致列を任意の順番で設定できますが、この順番はSQL SQL
の結果に直接影響を及ぼします。
このアサーションは、一致列を示すために列インデックスではなく列名を使用する場合にもまったく同様です。
JoinRowSet
修飾子と型 | メソッドと説明 |
---|---|
int[] |
getMatchColumnIndexes()
setMatchColumn(int[] columnIdxes) メソッドを使って、このRowSet オブジェクトに設定された一致列のインデックスを取得します。 |
String[] |
getMatchColumnNames()
setMatchColumn(String [] columnNames) メソッドを使って、このRowSet オブジェクトに設定された一致列の名前を取得します。 |
void |
setMatchColumn(int columnIdx)
指定された列をこの
RowSet オブジェクトの一致列として設定します。 |
void |
setMatchColumn(int[] columnIdxes)
指定された列をこの
RowSet オブジェクトの一致列として設定します。 |
void |
setMatchColumn(String columnName)
指定された列をこの
RowSet オブジェクトの一致列として設定します。 |
void |
setMatchColumn(String[] columnNames)
指定された列をこの
RowSet オブジェクトの一致列として設定します。 |
void |
unsetMatchColumn(int columnIdx)
この
RowSet オブジェクトの一致列として指定された列の設定を解除します。 |
void |
unsetMatchColumn(int[] columnIdxes)
この
RowSet オブジェクトの一致列として指定された列の設定を解除します。 |
void |
unsetMatchColumn(String columnName)
この
RowSet オブジェクトの一致列として指定された列の設定を解除します。 |
void |
unsetMatchColumn(String[] columnName)
この
RowSet オブジェクトの一致列として指定された列の設定を解除します。 |
void setMatchColumn(int columnIdx) throws SQLException
RowSet
オブジェクトの一致列として設定します。JoinRowSet
オブジェクトは、一致列に基づいて、このRowSet
オブジェクトを追加できます。
CachedRowSet
™インタフェースなどのサブインタフェースはCachedRowSet.setKeyColumns
メソッドを定義します。このメソッドを使用して、特定の列にプライマリ・キーのセマンティックスを適用できます。setMatchColumn(int columnIdx)
メソッドの実装では、CachedRowSet
オブジェクトでプライマリ・キー列を一致列として設定するときに、キー列の制約を維持すべきです。
columnIdx
- 一致列として設定される列のインデックスを示すint
SQLException
- 無効な列インデックスが設定された場合setMatchColumn(int[])
, unsetMatchColumn(int)
void setMatchColumn(int[] columnIdxes) throws SQLException
RowSet
オブジェクトの一致列として設定します。JoinRowSet
オブジェクトは、一致列に基づいて、このRowSet
オブジェクトを追加できます。columnIdxes
- 一致列として設定される列のインデックスを示すint
の配列SQLException
- 無効な列インデックスが設定された場合setMatchColumn(int[])
, unsetMatchColumn(int[])
void setMatchColumn(String columnName) throws SQLException
RowSet
オブジェクトの一致列として設定します。JoinRowSet
オブジェクトは、一致列に基づいて、このRowSet
オブジェクトを追加できます。
CachedRowSet
インタフェースなどのサブインタフェースはCachedRowSet.setKeyColumns
メソッドを定義します。このメソッドを使用して、特定の列にプライマリ・キーのセマンティックスを適用できます。setMatchColumn(String columnIdx)
メソッドの実装では、CachedRowSet
オブジェクトでプライマリ・キー列を一致列として設定するときに、キー列の制約を維持すべきです。
columnName
- 一致列として設定される列の名前を指定するString
オブジェクトSQLException
- 無効な列名が設定された場合、列名がnullの場合、または列名が空文字列の場合unsetMatchColumn(int)
, setMatchColumn(int[])
void setMatchColumn(String[] columnNames) throws SQLException
RowSet
オブジェクトの一致列として設定します。JoinRowSet
オブジェクトは、一致列に基づいて、このRowSet
オブジェクトを追加できます。columnNames
- 一致列として設定される列の名前を指定するString
オブジェクトの配列SQLException
- 無効な列名が設定された場合、列名がnullの場合、または列名が空文字列の場合unsetMatchColumn(int)
, setMatchColumn(int[])
int[] getMatchColumnIndexes() throws SQLException
setMatchColumn(int[] columnIdxes)
メソッドを使って、このRowSet
オブジェクトに設定された一致列のインデックスを取得します。RowSet
オブジェクトの一致列として設定された列のインデックスを示すint
配列SQLException
- 一致列が設定されていない場合setMatchColumn(int)
, unsetMatchColumn(int)
String[] getMatchColumnNames() throws SQLException
setMatchColumn(String [] columnNames)
メソッドを使って、このRowSet
オブジェクトに設定された一致列の名前を取得します。RowSet
オブジェクトの一致列として設定された列の名前を指定するString
オブジェクトの配列SQLException
- 一致列が設定されていない場合setMatchColumn(int)
, unsetMatchColumn(int)
void unsetMatchColumn(int columnIdx) throws SQLException
RowSet
オブジェクトの一致列として指定された列の設定を解除します。
Joinable
インタフェースを実装するRowSet
オブジェクトは、指定された列上でCachedRowSet.unsetKeyColumns
メソッドが呼び出されるまでキーと同様の制約が実施されることを保証する必要があります。
columnIdx
- 一致列としての設定を解除される列のインデックスを示すint
SQLException
- 無効な列インデックスが指定された場合、または指定された列が以前に一致列として設定されていない場合setMatchColumn(int)
void unsetMatchColumn(int[] columnIdxes) throws SQLException
RowSet
オブジェクトの一致列として指定された列の設定を解除します。columnIdxes
- 一致列としての設定を解除される列のインデックスを示すint
の配列SQLException
- 無効な列インデックスが指定された場合、または指定された列が以前に一致列として設定されていない場合setMatchColumn(int)
void unsetMatchColumn(String columnName) throws SQLException
RowSet
オブジェクトの一致列として指定された列の設定を解除します。
Joinable
インタフェースを実装するRowSet
オブジェクトは、指定された列上でCachedRowSet.unsetKeyColumns
メソッドが呼び出されるまでキーと同様の制約が実施されることを保証する必要があります。
columnName
- 一致列としての設定を解除される列の名前を指定するString
オブジェクトSQLException
- 無効な列名が指定された場合、または指定された列が以前に一致列として設定されていない場合setMatchColumn(int)
void unsetMatchColumn(String[] columnName) throws SQLException
RowSet
オブジェクトの一致列として指定された列の設定を解除します。columnName
- 一致列としての設定を解除される列の名前を指定するString
オブジェクトの配列SQLException
- 無効な列名が指定された場合、または指定された列が以前に一致列として設定されていない場合setMatchColumn(int)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.