WebSphere Application Server Network Deployment, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

             目次と検索結果のパーソナライズ化

JDBC メディエーター提供照会

SDO クライアントは SELECT ステートメントにより JDBC データ・メディエーター・サービスを提供して、DMS メタデータから生成されるステートメントを置き換えることができます。

SDO クライアントが DMS をインスタンス化するときには、DMS は決定的なメタデータを使用して基本の SELECT ステートメントを生成します。その照会を置換することで、ユーザーはパラメーター・マーカーを指定できるようになります。こうすると、dataGraph を伝搬するクライアント・データをさらに制御できます。クライアントからの照会に対しては、標準の SQL SELECT ストリングを使用します。

提供された照会と生成された照会の両方を使用して、UPDATE、INSERT、お よび DELETE ステートメントがそれぞれの DataObject 用に自動的に生成されます。 これらは、メディエーターが DataGraph になされた変更をデータベース に戻してコミットするときに、適用されます。

提供された照会のためのパラメーター DataObjects

クライア ントは、パラメーター DataObject を使用して、SQL SELECT 照会に対する引数を提供することができます。 パラメーター DataObject は DataObject ですが、DataGraph の一部ではありません。クライ アントが要求したときに、JDBC DMS によって構成されます。 提供された照会のための ParameterDataObject は、メディエーターに与えられた照会を基にして作成されます。 照会内のすべてのパラメーターは、arg0、arg1、…、argX のような名前が与えられます。

パラメーター DataObject は DataObject なので、そのプロパテ ィーは、プロパティー名または索引値のどちらかを使用して設定することができます。 プロパティーは、その argX 名、またはパラメーター、0、1、…、X に関連した番号によって参照可能です。 例えば、ご使用の照会は“SELECT CUSTFIRSTNAME WHERE CUSTSTATE = ? AND CUSTZIP = ?”です。 この提供された照会には、2 つのパラメーターがあります。 最初のパラメーターは CUSTSTATE と対応し、ストリング“arg0”または index 0 を使用して設定することができます。2 番目のパラメーターは CUSTZIP と対応し、ストリング“ arg1 ”または index 1 を使用して設定することができます。以下は、それらの設定方法のサンプル・コードです。このコードは、すでにメタデータとメディエーターが、メタデータおよび前述の提供された照会でセットアップされていることを前提としています。 索引値メソッドを使用して、コード化します。
DataObject parameters = mediator.getParameterDataObject();
parameter.setString(0, "NY");
parameter.setInt(1, 12345);
DataObject graph = mediator.getGraph(parameters);
プロパティー名メソッドを使用して、コード化します。
DataObject parameters = mediator.getParameterDataObject();
parameters.setString("arg0", "NY");
parameters.setInt("arg1", 12345);
DataObject graph = mediator.getGraph(parameters);
両方の場合とも、結果は同じです。

制限

JDBC DMS 生成の SQL SELECT 照会は、 Oracle または Informix で完全にサポートされているわけではありません。 これは、メディエーターが JDBC 2.0 内の ResultSetMetaData インターフェースを利用し、またそれが完全にインプリメントされていることを要求するからです。 Oracle、Informix、DB2/390、および Sybase の古い対応のバージョンは、ResultSetMetaData インターフェースを完全にはインプリメントしていません。 提供された選択アプローチは、これらのデータベースで、1 つの制限つき でまだ使用することが可能です: Metadata 内の列名はすべてのテーブルにわたって固有でなければなりません。 選 択ステートメントが、メタデータ内で複数回表示される名前を持つ列を戻す場合、InvalidMetadataException が発生します。 例えば、Customer および Order テーブルの両方が、「ID」という名前の列を含む場合、これは無効になり問題を生じます。 これを修正する方法は、データベース内の一致する列の少なくとも 1 つの 名前を変更し、2 つの列をお互いにうまく区別できるようにすることです。 Customer テーブルについては、例の中にあるように、列名を「CUSTID」に変更します。 Order 列名は、「ORDERID」に変更します。 Customer 列名を変更した場合は、Order 列名を変更する必要はありません が、整合性のために変更しても構いません。




関連概念
Java DataBase Connectivity Mediator Service
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 7:44:53 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rdat_sdosquery.html