ステップ3: 主キーによるデータの検索と表示 |
![]() 前へ |
![]() 次へ |
ビジネス・コンポーネント・バッチ・クライアント・チュートリアルのこのステップでは、CustomerId
属性によりCustomerView1
ビューの行の用法を検索し、その行のCustomerId
およびEmail
属性を表示します。
このステップを完了する前に、バッチ・クライアントを初期化したことを確認してください。
使用するCustomerIDが、バッチ・クライアントへのコマンドライン引数として提供されます。まず、コマンドライン引数に基づくオブジェクト型oracle.jbo.Keyを作成します。
コマンドラインからCustomerIdを取得し、それに基づくキーを作成するには、次のようにします。
main()
メソッドの先頭に次のコードを入力します。
if (args.length==0)
{
show("Customer ID is required.");
System.exit(0);
}
oracle.jbo.Key
を作成します。CustomersView1
ビューの用法を検索するコードのすぐ後ろに次のコードを入力します。
Key custKey = new Key(new Object[] {args[0]});
このキーには1つの部分しかありませんが、Key
コンストラクタは複数の部分からなるキーを持てるようにオブジェクト配列をとります。
次に、このキーに関連付けられた行を取得します。この行は、oracle.jbo.Row
インタフェースを実装するオブジェクトです。
custKey
に関連付けられた行を検索するには、次のようにします。
findByKey()
メソッドを使用して、custKey
に関連付けられた行の配列を検索します。custKey
を定義したコードのすぐ後ろに次のコードを入力します。
Row[] customersFound = vo.findByKey(custKey,1);
custKey
には主キーの全コンポーネントが入るので、関連付けられた行は1つだけですが、キーに属性を指定しないことも可能なのでfindByKey()
は行配列を返します。findByKeyの最初の引数はキーで、2番目の引数は返す行の最大値です。
if (customersFound.length==0)
{
show("Customer " + args[0] + " not found.");
}
customersFound
の最初の行(のみ)を取得します。上のif
文のすぐ後ろに次のコードを入力します。
else
{
Row row_Cust = customersFound[0];
}
これで、getAttribute()
メソッドを使用して、row_Custの属性を表示できます。row_Cust
は汎用のRow
なので、汎用のRow
インタフェースのメソッドであるという理由でのみ、getAttribute()
を使用できます。このチュートリアルの次のトピックでは、カスタム・メソッドのコール方法を説明します。
顧客のIDおよび電子メール・アドレスを表示するには、次のようにします。
else
ブロックのrow_Custの宣言の後ろに、書式を表示するために次のコードを入力します。
show("Customer");
show("========");
show("ID: " + row_Cust.getAttribute("CustomerId"));
show("Email: " + row_Cust.getAttribute("CustEmail"));
このバッチ・クライアントは引き続き変更を加えますが、この単純なバージョンでも実行できます。
このプロトタイプのバッチ・クライアントを実行し、保存するには、次のようにします。
101
と入力します。
101がコマンドライン引数として、バッチ・クライアントに渡されます。
メッセージ・ビューにプログラムの出力が表示されます。
次は、カスタム・ビジネス・ロジック・メソッドの作成とコールを行います。