WebLogic Server 9.0 Beehive 統合ガイド
Rowset の注釈
SQLRowSet
WebLogic Server 9.0 には、SQLRowSet メタデータ注釈が追加されています。SQLRowSet は、RowSet 機能をサポートするメソッドレベルの注釈です。これには、以下のメンバーがあります。
SQLRowSet メンバー
メンバー名
|
型
|
必須/省略可能
|
用途
|
値
|
commandType
|
CommandType
|
省略可能
|
実行する RowSet コマンド
|
CommandType.NONE (デフォルト値)
CommandType.GRID
CommandType.DETAIL
CommandType.UPDATE
CommandType.INSERT
CommandType.DELETE
CommandType.TEMPLATE_ROW
CommandType.INSERTED_ROW
CommandType.NEW_KEY
|
rowsetName
|
String
|
省略可能
|
RowSet オブジェクトの名前
|
デフォルト値 : 空の文字列
|
rowsetSchema
|
String
|
省略可能
|
XML スキーマ名
|
デフォルト値 : 空の文字列
|
サンプル
この節で説明するサンプル コードは、JDBC コントロール ファイルに追加されることを想定しています。JDBC コントロール ファイルについては、http://incubator.apache.org/beehive/system-controls/jdbc/jdbcControlDevGuide.html を参照してください。
この注釈を使用するコントロール ファイルに次のコードを追加してください。
@SQLRowSet(commandType = com.bea.control.JdbcControl.CommandType.NONE, rowsetName="aRowSet")
@JdbcControl.SQL(statement="SELECT * FROM WEBLOGIC.VISITORS_CONTROL")
public RowSet getRowSet() throws SQLException;
コントロール ファイル名が JdbcControlSample.jcx
であるとすると、JdbcControlSample.class
というインスタンス化可能な Java クラスが生成されます。このクラスには、サンプル コードで示されている SQL 文を実行した結果が含まれた RowSet オブジェクトを返す getRowSet()
メソッドが含まれます。
この機能は次のように使用できます。
@Control() protected JdbcControlSample myCtl;
try {
RowSet rs = myCtl.getRowSet();
.. .
} catch (Exception e) {
. . .
}
使用の制限
この注釈の使用にあたっては、以下のルールが適用されます。
メソッドに対するこの注釈に CommandType.INSERT、CommandType.UPDATE、または CommandType.DELETE が指定されている場合は、メソッドでは RowSet が最初のパラメータでなければなりません。
メソッドに対するこの注釈に CommandType.INSERT が指定されている場合は、RowSet には少なくとも 1 つの挿入された行が含まれている必要があります。そうでない場合、メソッド呼び出しは ControlException を送出します。
メソッドに対するこの注釈に CommandType.INSERT が指定されている場合は、RowSet には削除された行も更新された行も含まれていてはいけません。含まれている場合、メソッド呼び出しは ControlException を送出します。
メソッドに対するこの注釈に CommandType.DELETE が指定されている場合は、RowSet には少なくとも 1 つの削除された行が含まれている必要があります。そうでない場合、メソッド呼び出しは ControlException を送出します。
メソッドに対するこの注釈に CommandType.DELETE が指定されている場合は、RowSet には挿入された行も更新された行も含まれていてはいけません。含まれている場合、メソッド呼び出しは ControlException を送出します。
メソッドに対するこの注釈に CommandType.UPDATE が指定されている場合は、RowSet には少なくとも 1 つの更新された行が含まれている必要があります。そうでない場合、メソッド呼び出しは ControlException を送出します。
メソッドに対するこの注釈に CommandType.UPDATE が指定されている場合は、RowSet には挿入された行も削除された行も含まれていてはいけません。含まれている場合、メソッド呼び出しは ControlException を送出します。
メソッドに対するこの注釈に CommandType.TEMPLATE_ROW が指定されている場合は、RowSet に JDBC コントロールの以前の呼び出しによる名前が割り当てられていてはいけません。割り当てられている場合、メソッド呼び出しは例外を送出します。さらにメソッドは RowSet オブジェクトを返す必要があります。