openGionopenGion
5.4.0.0

org.opengion.fukurou.process
クラス Process_BulkQuery

java.lang.Object
  上位を拡張 org.opengion.fukurou.process.AbstractProcess
      上位を拡張 org.opengion.fukurou.process.Process_BulkQuery
すべての実装されたインタフェース:
ChainProcess, FirstProcess, HybsProcess

public class Process_BulkQuery
extends AbstractProcess
implements FirstProcess, ChainProcess

Process_BulkQueryは、データベースから読み取った内容を、一括処理するために、 ParamProcess のサブクラス(Process_DBParam)にセットしたり、加工したりする FirstProcess と、ChainProcess のインターフェースを両方持った、実装クラスです。 このクラスは、上流から、下流への処理は、1度しか実行されません。 FirstProcess の検索結果は、Set オブジェクトとして、Process_DBParam に渡します。 ChainProcess は、その結果を取り出し、自分自身の処理結果と合せて加工します。 FirstProcess では、-action は、query のみです。 query は、指定のSQL文を実行し、結果のSetをParamProcessに設定します。 ChainProcess では、-action は、query、bulkSet、minus、intersect が指定できます。 query は、上記と同じです。 minus は、先のSetから、SQL文の実行結果を引き算し、結果Setを再設定します。 intersect は、先のSetから、SQL文の実行結果と重複する結果Setを再設定します。 bulkSet は、先のSetを取り出し、SQL文に加味して処理します。 流れ的には、query で検索し、minusまたはintersect でSetオブジェクトを加工し、bulkSet で 利用します。例えば、ORACLEから、ユニークキーのSetを作成し、SQLServerのユニークキーを minusした結果を、ORACLEからDELETEすれば、不要なデータを削除するなどの処理が実行可能になります。 また、単純に、query だけを、チェインすれば、単発のUPDATE文を実行することが可能です。 データベース接続先等は、ParamProcess のサブクラス(Process_DBParam)に 設定された接続(Connection)を使用します。 DBID は、Process_DBParam の -configFile で指定する DBConfig.xml ファイルを使用します。 引数文字列中にスペースを含む場合は、ダブルコーテーション("") で括って下さい。 引数文字列の 『=』の前後には、スペースは挟めません。必ず、-key=value の様に 繋げてください。 SQL文には、{@DATE.YMDH}等のシステム変数が使用できます。

形式サンプル:
 Process_BulkQuery -action=query -dbid=DBGE -sql="select KEY from TABLE_X"

     -action=処理方法(必須)      : 実行する処理方法を指定します
                                       -action=query     単なるSQL文を実行します。
                                       -action=bulkSet   実行したSQL文の結果を、Set オブジェクトに設定します。
                                       -action=minus     Set オブジェクトと、ここでの実行結果の差分をとります。
                                       -action=intersect Set オブジェクトと、ここでの実行結果の積分をとります。
   [ -dbid=DB接続ID             ] : -dbid=DBGE (例: Process_DBParam の -configFile で指定する DBConfig.xml ファイルで規定)
   [ -sql=検索SQL文             ] : -sql="select * from GEA08"
   [ -sqlFile=検索SQLファイル   ] : -sqlFile=select.sql
                                       -sql= を指定しない場合は、ファイルで必ず指定してください。
   [ -sql_XXXX=固定値           ] : -sql_SYSTEM_ID=GE
                                       SQL文中の{@XXXX}文字列を指定の固定値で置き換えます。
                                       WHERE SYSTEM_ID='{@SYSTEM_ID}' ⇒ WHERE SYSTEM_ID='GE'
   [ -bulkKey=XXXX              ] : -bulkKey=XXXX
                                       SQL文中の{@XXXX}文字列をProcess_BulkQuery等で取得した値で置き換えます。
                                       WHERE SYSTEM_ID IN ( {@XXXX} ) ⇒ WHERE SYSTEM_ID IN ( 'AA','BB','CC' )
   [ -bulkType=NUM|STR          ] : -bulType=STR
                                     Bulkの値を文字列に変換する場合に、数字型か、文字型を指定します。
                                     数字型では、AA,BB,CC とし、文字型では、'AA','BB','CC' に変換します。(初期値:STR)
   [ -fetchSize=100             ] :フェッチする行数(初期値:100)
   [ -display=false|true        ] :結果を標準出力に表示する(true)かしない(false)か(初期値 false:表示しない)
   [ -debug=false|true          ] :デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値 false:表示しない)
変更履歴:
5.3.4.0 (2011/04/01) 新規追加
バージョン
4.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK5.0,

フィールドの概要
 
クラス org.opengion.fukurou.process.AbstractProcess から継承されたフィールド
CR, TAB
 
コンストラクタの概要
Process_BulkQuery()
          デフォルトコンストラクター。
 
メソッドの概要
 LineModel action(LineModel data)
          引数の LineModel を処理するメソッドです。
 void end(boolean isOK)
          プロセスの終了を行います。
 void init(ParamProcess paramProcess)
          プロセスの初期化を行います。
static void main(java.lang.String[] args)
          このクラスは、main メソッドから実行できません。
 LineModel makeLineModel(int rowNo)
          最初に、 行データである LineModel を作成します FirstProcess は、次々と処理をチェインしていく最初の行データを 作成して、後続の ChainProcess クラスに処理データを渡します。
 boolean next()
          このデータの処理において、次の処理が出来るかどうかを問い合わせます。
 java.lang.String report()
          プロセスの処理結果のレポート表現を返します。
 java.lang.String usage()
          このクラスの使用方法を返します。
 
クラス org.opengion.fukurou.process.AbstractProcess から継承されたメソッド
getArgument, logging, println, putArgument, putArgument, setLoggerProcess, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース org.opengion.fukurou.process.HybsProcess から継承されたメソッド
logging, println, putArgument, putArgument, setLoggerProcess
 

コンストラクタの詳細

Process_BulkQuery

public Process_BulkQuery()
デフォルトコンストラクター。 このクラスは、動的作成されます。デフォルトコンストラクターで、 super クラスに対して、必要な初期化を行っておきます。

メソッドの詳細

init

public void init(ParamProcess paramProcess)
プロセスの初期化を行います。初めに一度だけ、呼び出されます。 初期処理(ファイルオープン、DBオープン等)に使用します。

定義:
インタフェース HybsProcess 内の init
パラメータ:
paramProcess - ParamProcess

end

public void end(boolean isOK)
プロセスの終了を行います。最後に一度だけ、呼び出されます。 終了処理(ファイルクローズ、DBクローズ等)に使用します。

定義:
インタフェース HybsProcess 内の end
パラメータ:
isOK - トータルで、OKだったかどうか(true:成功/false:失敗)

next

public boolean next()
このデータの処理において、次の処理が出来るかどうかを問い合わせます。 この呼び出し1回毎に、次のデータを取得する準備を行います。

定義:
インタフェース FirstProcess 内の next
戻り値:
boolean 処理できる:true / 処理できない:false

action

public LineModel action(LineModel data)
引数の LineModel を処理するメソッドです。 変換処理後の LineModel を返します。 後続処理を行わない場合(データのフィルタリングを行う場合)は、 null データを返します。つまり、null データは、後続処理を行わない フラグの代わりにも使用しています。 なお、変換処理後の LineModel と、オリジナルの LineModel が、 同一か、コピー(クローン)かは、各処理メソッド内で決めています。 ドキュメントに明記されていない場合は、副作用が問題になる場合は、 各処理ごとに自分でコピー(クローン)して下さい。

定義:
インタフェース ChainProcess 内の action
パラメータ:
data - LineModel オリジナルのLineModel
戻り値:
LineModel 処理変換後のLineModel

makeLineModel

public LineModel makeLineModel(int rowNo)
最初に、 行データである LineModel を作成します FirstProcess は、次々と処理をチェインしていく最初の行データを 作成して、後続の ChainProcess クラスに処理データを渡します。

定義:
インタフェース FirstProcess 内の makeLineModel
パラメータ:
rowNo - int 処理中の行番号
戻り値:
LineModel 処理変換後のLineModel

report

public java.lang.String report()
プロセスの処理結果のレポート表現を返します。 処理プログラム名、入力件数、出力件数などの情報です。 この文字列をそのまま、標準出力に出すことで、結果レポートと出来るような 形式で出してください。

定義:
インタフェース HybsProcess 内の report
戻り値:
処理結果のレポート

usage

public java.lang.String usage()
このクラスの使用方法を返します。

定義:
インタフェース HybsProcess 内の usage
戻り値:
String このクラスの使用方法

main

public static void main(java.lang.String[] args)
このクラスは、main メソッドから実行できません。

パラメータ:
args - String[]

openGion 5.4.0.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.