001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.hayabusa.db;
017
018 import org.opengion.hayabusa.resource.ResourceManager;
019 import org.opengion.fukurou.util.ErrorMessage;
020 import org.opengion.fukurou.db.Transaction;
021
022
023 /**
024 * スãƒ??トメント文ã‚?execute() する事により,ãƒ??タベã?スを検索した結果ã‚?DBTableModel に
025 * 割り当てるインターフェースですã?
026 * 実際にこã?インターフェースを継承したクラスでは、データベã?ス以外に
027 * フラãƒ?ƒˆファイルやXMLãƒ??タなどを読み込んで DBTableModel を作æ?させã‚?
028 * 様な実è£?‚¯ラスを作æ?することができますã?
029 *
030 * @og.group ãƒ??タ表示
031 * @og.group ãƒ??タ編é›?
032 *
033 * @version 4.0
034 * @author Kazuhiko Hasegawa
035 * @since JDK5.0,
036 */
037 public interface Query {
038
039 /**
040 * Queryオブジェクトを初期化しますã?
041 * これは、QueryFactory のプã?ルから取り出すときに(またã?戻すとã�?に
042 * 初期化するã?に使用しますã?
043 *
044 */
045 void init() ;
046
047 /**
048 * スãƒ??トメント文字å?をセãƒ?ƒˆしますã?
049 *
050 * @param statement スãƒ??トメント文字å?
051 *
052 */
053 void setStatement( String statement ) ;
054
055 /**
056 * スãƒ??トメント文字å?を取りå?しますã?
057 *
058 * @return スãƒ??トメント文字å?
059 *
060 */
061 String getStatement();
062
063 /**
064 * クエリーを実行しますã?
065 * セãƒ?ƒˆされてã�?‚‹スãƒ??トメント文字å?とそã?タイプが合ってã�?�ªã�??合ã?,
066 * エラーになりますã?
067 * 実行結果は、DBTableModel にセãƒ?ƒˆされますã?
068 *
069 */
070 void execute() ;
071
072 /**
073 * 引数配å?付ã?クエリーを実行しますã?
074 * 処ç�??体ã?, #execute() と同様に、各サブクラスの実è£?�«依存しますã?
075 * これは、PreparedQuery で使用する引数をé?列でセãƒ?ƒˆするもã?ですã?
076 * select * from emp where deptno = ? and job = ? などの PreparedQuery ã‚?
077 * { call xxxx( ?,?,? ) } などの CallableStatement の ? 部åˆ??引数ã‚?
078 * é ?•ªにセãƒ?ƒˆしてã�?��ますã?
079 *
080 * @param args オブジェクトã?引数配å?
081 */
082 void execute( String[] args ) ;
083
084 /**
085 * 引数配å?付ã?クエリーを実行しますã?
086 * 処ç�??体ã?, #execute() と同様に、各サブクラスの実è£?�«依存しますã?
087 * これは、PreparedQuery で使用する引数をé?列でセãƒ?ƒˆするもã?ですã?
088 * select * from emp where deptno = ? and job = ? などの PreparedQuery の
089 * ? 部åˆ??引数ã‚?
090 * é ?•ªにセãƒ?ƒˆしてã�?��ますã?
091 *
092 * @og.rev 4.0.0.0 (2005/01/31) 新規追åŠ?
093 *
094 * @param keys オブジェクトã?キー配å?
095 * @param args オブジェクトã?引数配å?
096 */
097 void execute( final String[] keys, final String[] args ) ;
098
099 /**
100 * 引数配å?付ã?クエリーを実行しますã?
101 * 処ç�??体ã?, #execute() と同様に、各サブクラスの実è£?�«依存しますã?
102 * これは、PreparedQuery で使用する引数をé?列でセãƒ?ƒˆするもã?ですã?
103 * select * from emp where deptno = ? and job = ? などの PreparedQuery の
104 * ? 部åˆ??引数ã‚?
105 * é ?•ªにセãƒ?ƒˆしてã�?��ますã?
106 *
107 * @og.rev 4.0.0.0 (2005/01/31) 引数をすべて受け取って実行するメソãƒ?ƒ‰を標準メソãƒ?ƒ‰として追åŠ?
108 *
109 * @param names カラãƒ?��(CSV形å¼?
110 * @param dbArrayType アレイタイプ名称
111 * @param sysArg DBSysArg配å?
112 * @param userArg DBUserArg配å?
113 */
114 void execute( final String names,final String dbArrayType,
115 final DBSysArg[] sysArg,final DBUserArg[] userArg ) ;
116
117 /**
118 * 引数配å?付ã?クエリーを実行しますã?
119 * 処ç�??体ã?, #execute() と同様に、各サブクラスの実è£?�«依存しますã?
120 * これは、PreparedQuery で使用する引数をé?列でセãƒ?ƒˆするもã?ですã?
121 * select * from emp where deptno = ? and job = ? などの PreparedQuery の
122 * [カラãƒ?��] 部åˆ??引数をã?DBTableModelからé ?•ªにセãƒ?ƒˆしてã�?��ますã?
123 *
124 * @param rowNo 選択された行番号配å?(登録する対象è¡?
125 * @param table DBTableModelオブジェクãƒ?登録するå…?ƒ‡ータ)
126 */
127 void execute( final int[] rowNo, final DBTableModel table ) ;
128
129 /**
130 * コミットを行いますã?
131 *
132 */
133 void commit() ;
134
135 /**
136 * ロールバックを行いますã?
137 *
138 */
139 void rollback() ;
140
141 /**
142 * 使用した Statementオブジェクトをクロースしã?Connection オブジェクトを
143 * プã?ルに返しますã?
144 *
145 */
146 void close() ;
147
148 /**
149 * Connection オブジェクトを実際にクローズ(破æ£?しますã?
150 * プã?ルからも削除しますã?
151 * 実行時エラー等が発生したときに、このメソãƒ?ƒ‰を呼び出しますã?
152 *
153 */
154 void realClose() ;
155
156 /**
157 * クエリーの実行結果を返しますã?
158 * クエリーが失敗したå?合や,CallableStatement の呼び出し等で実行件数がæ?確でなã�?
159 * 場合ã?, -1 が返されますã?
160 *
161 * @return クエリーの実行件数
162 */
163 int getExecuteCount() ;
164
165 /**
166 * 実行結果の DBTableModel を返しますã?
167 *
168 * @return DBTableModelオブジェクãƒ?
169 */
170 DBTableModel getDBTableModel() ;
171
172 /**
173 * ãƒ??タベã?スのæœ?¤§検索件数を返しますã?
174 * ãƒ??タベã?ス自体ã?検索は,æŒ?®šされたSQLの全件を検索しますが,
175 * DBTableModelのãƒ??タとして登録するæœ?¤§件数をこの値に設定しますã?
176 * サーバã?のメモリè³?º�と応答時間ã?確保ã?為ですã?
177 *
178 * @return æœ?¤§検索件数
179 */
180 int getMaxRowCount() ;
181
182 /**
183 * ãƒ??タベã?スのæœ?¤§検索件数をセãƒ?ƒˆしますã?
184 * ãƒ??タベã?ス自体ã?検索は,æŒ?®šされたSQLの全件を検索しますが,
185 * DBTableModelのãƒ??タとして登録するæœ?¤§件数をこの値に設定しますã?
186 * サーバã?のメモリè³?º�と応答時間ã?確保ã?為ですã?
187 *
188 * @param maxRowCount æœ?¤§検索件数
189 */
190 void setMaxRowCount( int maxRowCount ) ;
191
192 /**
193 * ãƒ??タベã?スの検索スキãƒ??件数を返しますã?
194 * ãƒ??タベã?ス自体ã?検索は,æŒ?®šされたSQLの全件を検索しますが,
195 * DBTableModelのãƒ??タとしては、スキãƒ??件数åˆ??登録されませんã€?
196 * サーバã?のメモリè³?º�と応答時間ã?確保ã?為ですã?
197 *
198 * @return æœ?¤§検索件数
199 */
200 int getSkipRowCount();
201
202 /**
203 * ãƒ??タベã?スの検索スキãƒ??件数をセãƒ?ƒˆしますã?
204 * ãƒ??タベã?ス自体ã?検索は,æŒ?®šされたSQLの全件を検索しますが,
205 * DBTableModelのãƒ??タとしては、スキãƒ??件数åˆ??登録されませんã€?
206 * サーバã?のメモリè³?º�と応答時間ã?確保ã?為ですã?
207 *
208 * @param skipRowCount スキãƒ??件数
209 */
210 void setSkipRowCount( int skipRowCount );
211
212 /**
213 * ãƒ??タベã?スの接続å?IDをセãƒ?ƒˆしますã?
214 * シスãƒ?ƒ パラメータ ファイルに定義してある ãƒ??タベã?ス識別IDによってã€?
215 * 接続å?をå?り替えますã?
216 * こã?接続å?IDをå?に,Connection オブジェクトを作æ?しますã?
217 *
218 * @param connectionID 接続å?ID
219 * @og.rev 5.1.9.0 (2010/08/01) å»?¢
220 */
221 // void setConnectionID( String connectionID ) ;
222
223 /**
224 * アãƒ??ãƒ??トフラグを取得しますã?
225 * これは、Query で更新処ç�?? SQL æ–?‚’実行したときに true にセãƒ?ƒˆされますã?
226 * 更新処ç�?�Œ実行:true / 検索処ç�??み?šfalse を取得できますã?
227 *
228 * @og.rev 2.1.2.3 (2002/12/02) ãƒ??タベã?ス更新時に、更新フラグをセãƒ?ƒˆするように変更
229 * @og.rev 4.0.0.0 (2007/07/20) メソãƒ?ƒ‰名変更( getUpdateFlag() â‡?isUpdate() )
230 *
231 * @return アãƒ??ãƒ??トされたかどã�?�‹( 更新処ç�?¼štrue / 検索処ç�?¼šfalse )
232 */
233 // boolean getUpdateFlag() ;
234 boolean isUpdate() ;
235
236 /**
237 * リソースマネージャーをセãƒ?ƒˆしますã?
238 * これは、è¨?ª?ロケール)に応じã�?DBColumn をあらかじめ設定しておく為に
239 * å¿?¦�ですã?
240 * リソースマネージャーが設定されてã�?�ªã�??またã?、所定ã?キーの DBColumn ã�?
241 * リソースに存在しなã�??合ã?、å?部で DBColumn オブジェクトを作æ?しますã?
242 *
243 * @og.rev 4.0.0.0 (2005/01/31) lang â‡?ResourceManager へ変更
244 *
245 * @param resource リソースマネージャー
246 */
247 void setResourceManager( ResourceManager resource ) ;
248
249 /**
250 * アクセスログ取得ã?為,ApplicationInfoオブジェクトを設定しますã?
251 *
252 * @og.rev 3.8.7.0 (2006/12/15) 新規追åŠ?
253 * @og.rev 5.1.9.0 (2010/08/01) å»?¢
254 *
255 * @param appInfo ApplicationInfo
256 */
257 // void setApplicationInfo( ApplicationInfo appInfo ) ;
258
259 /**
260 * エラーコーãƒ?を取得しますã?
261 * エラーコーãƒ?は、ErrorMessage クラスで規定されてã�?‚‹コードですã?
262 *
263 * @return エラーコーãƒ?
264 */
265 int getErrorCode() ;
266
267 /**
268 * エラーメãƒ?‚»ージオブジェクãƒ?を取得しますã?
269 *
270 * @return エラーメãƒ?‚»ージオブジェクãƒ?
271 */
272 ErrorMessage getErrorMessage() ;
273
274 /**
275 * Transactionオブジェクトを外部から設定しますã?
276 *
277 * 通常は、ConnectionFactory を使用して、å?部で Connection を作æ?しますがã€?
278 * ä¸??のトランザクション処ç�?‚’実施するには、外部から Transactionオブジェクトを
279 * を与えて、そこからã?Connection を取りå?すå¿?¦�がありますã?
280 *
281 * ここでは、å?部の connection が存在しなã�??合に限り、セãƒ?ƒˆを許可しますã?
282 *
283 * @og.rev 5.1.9.0 (2010/08/01) 新規追åŠ?
284 *
285 * @param connID 接続å?ID
286 * @param tran Transactionオブジェクãƒ?
287 */
288 void setTransaction( final String connID , final Transaction tran ) ;
289
290 /**
291 * エãƒ?‚£ãƒ?ƒˆ設定オブジェクトをセãƒ?ƒˆしますã?
292 *
293 * @og.rev 5.3.6.0 (2011/06/01) 新規追åŠ?
294 *
295 * @param config エãƒ?‚£ãƒ?ƒˆ設定オブジェクãƒ?
296 */
297 void setEditConfig( final DBEditConfig config );
298 }