ビジネス・コンポーネント・プログラムによるクライアントのチュートリアルのまとめ |
![]() 前へ |
このチュートリアルでは、クライアント側BC4J API使用してBusiness Components for Java(BC4J)クライアントを開発する方法を説明しました。BC4J APIについての知識は、バッチ・クライアントを作成(このチュートリアルで説明)するときだけでなく、JavaServer Pages(JSP)やSwingクライアントなど、他のクライアントをカスタマイズする場合にも役に立つます。
ApplicationModuleやViewObjectなど、層に依存しないインタフェースを使用すると、クライアント層とBC4J層の分離を維持することができます。それによってメンテナンス性が向上し、実質上ほとんどコードを変更せずにデプロイ構成の変更(後でBC4J層をEJBとしてデプロイする、など)オプションを保持できるようになります。
このチュートリアルでは、クライアント側のConfiguration
クラスのcreateRootApplicationModule()
を介してアプリケーション・モジュールにアクセスしました。そのため、実装クラスに直接アクセスすることなく、ApplicationModuleインタフェース(この場合はOnlineOrdersModuleImpl
により実装される)にアクセスできました。
同様に、ビュー・オブジェクトの実装クラスに直接アクセスするかわりに、ApplicationModuleインタフェースのfindViewObject()
をコールして、ViewObjectインタフェースにアクセスしました。
層に依存しないインタフェースの詳細は、「n層のビジネス・コンポーネント・アーキテクチャの理解」を参照してください。
ViewObject
インタフェースは、行セット間の前後の移動、特定の行へのジャンプおよび特定の行の取得を、何通りかの方法で可能にします。このチュートリアルでは、2つの方法で行セット間を移動しました。
hasNext()
による条件テストを利用して行セット間を1つずつ進み、next()
で各ステップを実行する、while
ループを作成しました。Key
を作成し、次にfindByKey()
を使用してその行を取得しました。行セット間の移動の詳細は、「問合せの行を移動する方法」を参照してください。
特定の行の取得および更新には、次の3通りの方法があります。
Row
インタフェースのgetAttribute()
メソッドおよびsetAttribute()
メソッドを使用チュートリアルでは1番目の方法を何度か使用し、顧客のフルネームを結合する際には2番目の方法を使用しました(カスタム・メソッドgetCustFullName()
を作成および使用)。
3番目の方法は、チュートリアルでは使用しませんでしたが、これと類似しています。JDeveloperでは、最初にカスタム・ビュー行クラスを作成すると、自動的にそのクラスにアクセッサが生成されます。たとえば、CustomersViewに対して作成したビュー行クラスには、getCustFirstName()
およびsetCustomerId()
などのメソッドがあります。これらのメソッドは、カスタム・メソッドと同様にエクスポートできます。そうすると、setAttribute()
やgetAttribute()
を使用するかわりに、これらのメソッドをコールできるようになります。たとえば、
show("ID: " + row_Cust.getAttribute("CustomerId"));
をコールしてCustomerId
属性を表示するかわりに、次のようなコールが可能です。
show("ID: " + row_Cust.getCustomerId());
これには次の2つの利点があります。
setAttribute、カスタム・ビュー行メソッドまたは型保証アクセッサによって変更されるのは、BC4Jキャッシュ内の値であり、データベース内の値が直接変更されることはありません。チュートリアルでは、ApplicationModule
インタフェースのcommit()
をコールして、データベースへの変更のポストとコミットを同時に行いました。
このチュートリアルではCustomersView
およびOrdersView
という2つの行セットがあり、これらがマスター/ディテール関係にありました。BC4Jには、マスター/ディテール関係を処理する2つの方法があります。
1つ目の方法では、このチュートリアルで実行したように特定のRow
のgetAttribute()
メソッドを使用して、静的なディテール行セットを返します。これは、1回のみの操作です。返された行セットには、たとえマスター行セットの現在の行が変更されても、元のマスター行のディテールが必ず含まれます。
2つ目の方法では、アプリケーション・モジュールでディテール・ビューを使用し、自動的に同期された行セットを返します。データ・モデルの1つのビュー・インスタンスが他方のディテールである場合は、マスター行セットで現在選択されている行のディテールを常に含む動的な行セットになります。マスター行セットの現在の行が変更されると、ディテール行セット全体もそれに応じて変更されます。データ・モデルにおけるマスター/ディテール関係の詳細は、「ビジネス・コンポーネント・チュートリアルについて」を参照してください。
Business Components for Javaについてさらに学習する場合は、次のいずれかのチュートリアルに進むか、または「ビジネス・コンポーネントの開発」を参照してください。