クラス Query_JDBCPrepared
- java.lang.Object
-
- org.opengion.hayabusa.db.AbstractQuery
-
- org.opengion.plugin.query.Query_JDBCPrepared
-
- すべての実装されたインタフェース:
Query
public class Query_JDBCPrepared extends AbstractQuery
引数引き当て(PreparedStatement) を利用した登録系Queryです。 java.sql.PreparedStatement を用いて、データベース検索処理を行います。 引数に、指定した値を配列で渡します。 内部変数の受け渡しのデフォルト実装は、AbstractQuery クラスを継承している ため,ここでは、execute() メソッドを実装しています。 このクラスでは、ステートメント文を execute() する事により,データベースを 検索した結果を DBTableModel に割り当てます。 このクラスは、Query で使用されるより、内部の DBTableModelUtilから、 利用されるケースが主です。 Query で使用する場合は、JDBCPrepared ではなく、JDBCTableUpdate を 使用することを、ご検討ください。 ※postgres8.3以降では、数値型の列に対して、実行した場合は、型相違のエラーが発生します。 postgres8.3以降で利用する場合は、postgres側に暗黙の型変換(CAST)の実装を検討して下さい。- 機能分類
- データ表示, データ編集
- 形式サンプル:
- 例: 可変引数付きのSQL文を実行します。 これは、INSERT,UPDATE,DELETE など、どのようなSQL文でも実行できます。 names 属性で指定するのは、DBTableModelのカラム名で、その値が順番に、 引数(?記号)の個所に設定されます。 選択されたデータ(行)の数だけ、繰り返し実行されます。 jsp/TYPE1A/copy.jsp <og:value scope="session" key="names" value="CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG" /> <og:value scope="session" key="SQL" > INSERT INTO GEA08 (CLM,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG, FGJ,DYSET,DYUPD,USRSET,USRUPD,PGUPD) VALUES (?,?,?,?,?,?, '1','{@USER.YMDH}','{@USER.YMDH}','{@USER.ID}','{@USER.ID}','{@GUI.KEY}') </og:value> jsp/TYPE1A/entry.jsp <h:tableUpdate command = "{@command}" queryType = "JDBCPrepared" names = "{@names}" > {@SQL} </og:tableUpdate> <!-- 前画面で指定のSQL文を削除します。(scope="session"なので削除が必要。) --> <og:value scope="session" key="names" command="REMOVE" /> <og:value scope="session" key="SQL" command="REMOVE" /> 以下はSELECTで使用する場合の例 ※値はnamesに指定した値が、?に順番に設定されます。 (andタグのplaceHolder属性は、valueに指定した式を、実行する or 実行しないの判定に利用されます。) <og:query command="NEW" queryType="JDBCPrepared" names="NO,NAME,KBN"> SELECT NO,NAME,KBN FROM T01 <og:where> <og:and value="NO = ?" placeHolder="{@NO}" /> <og:and value="NAME LIKE ? || '%'" placeHolder="{@NAME}" /> <og:and value="KBN IN (?)" multi="true" placeHolder="{@KBN}"/> </og:where> </og:query>
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
-
-
フィールドの概要
-
クラスから継承されたフィールド org.opengion.hayabusa.db.AbstractQuery
ARG_ARRAY, BUFFER_MIDDLE, CR, DB_FETCH_SIZE, DB_MAX_QUERY_TIMEOUT, ERR_MSG, ERR_MSG_ARRAY, SYSARG_ARRAY
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 Query_JDBCPrepared()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 void
execute(java.lang.String... args)
引数配列付のクエリーを実行します。-
クラスから継承されたメソッド org.opengion.hayabusa.db.AbstractQuery
createTableModel, execute, execute, execute, getConnection, getDBTableModel, getEditConfig, getErrorCode, getErrorMessage, getExecuteCount, getMaxRowCount, getSkipRowCount, getStatement, isUpdate, setConnection, setDBTableModel, setEditConfig, setErrorCode, setErrorMessage, setExecuteCount, setMaxRowCount, setResourceManager, setSkipRowCount, setStatement, setUpdateFlag, toString, useParameterMetaData
-
-
-
-
メソッドの詳細
-
execute
public void execute(java.lang.String... args)
引数配列付のクエリーを実行します。 処理自体は, #execute() と同様に、各サブクラスの実装に依存します。 これは、PreparedQuery で使用する引数を配列でセットするものです。 select * from emp where deptno = ? and job = ? などの PreparedQuery の ? 部分の引数を 順番にセットしていきます。- 定義:
execute
インタフェース内Query
- オーバーライド:
execute
クラス内AbstractQuery
- パラメータ:
args
- オブジェクトの引数配列(可変長引数)- 変更履歴:
- 2.1.2.3 (2002/12/02) データベース更新時に、更新フラグをセットするように変更, 2.3.1.3 (2003/01/28) Open Cursor が、大量に残る件の対応。ResultSet を close(), 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。, 3.3.3.1 (2003/07/18) DB登録時の後ろスペースを削除する。, 3.5.6.0 (2004/06/18) PreparedStatement をexecute 間で使いまわします。, 3.8.0.8 (2005/10/03) エラーメッセージの出力順をメッセージ+Queryに変更します。, 5.3.8.0 (2011/08/01) pstmt.setObject で、useParamMetaData の判定を避けるため、pstmt.setString で代用(PostgreSQL対応), 6.3.6.1 (2015/08/28) close(),realClose() 廃止。Queryはキャッシュしません。, 6.4.2.1 (2016/02/05) try-with-resources 文で記述。, 6.9.3.0 (2018/03/26) DB_FETCH_SIZE追加。
-
-