パッケージ org.opengion.fukurou.db
クラス QueryMaker
java.lang.Object
org.opengion.fukurou.db.QueryMaker
QueryMaker は、カラム名などから、SELECT,INSERT,UPDATE,DALETE 文字列を作成するクラスです。
基本的には、カラム名と、それに対応する値のセットで、QUERY文を作成します。
値には、[カラム名] が使用でき、出力される値として、? が使われます。
これは、PreparedStatement に対する引数で、処理を行うためです。
この[カラム名]のカラム名は、検索された側のカラム名で、INSERT/UPDATE/DELETE等が実行される
データベース(テーブル)のカラム名ではありません。(偶然、一致しているかどうかは別として)
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- 導入されたバージョン:
- JDK6.0,
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明データを削除する場合に使用するSQL文を作成します。データを追加する場合に使用するSQL文を作成します。getNames()
カラム名を取得します。String[]
getParamNames
(boolean useInsert) PreparedStatement で、パラメータとなるカラム名の配列を返します。データを検索する場合に使用するSQL文を作成します。getTable()
テーブル名を取得します。データを更新する場合に使用するSQL文を作成します。void
setConstKeys
(String keys) 固定値のカラム名をセットします。void
setConstVals
(String vals) 固定値のカラム名に対応した、固定値文字列をセットします。void
カラム名をセットします。void
setOmitNames
(String omitNames) 除外するカラム名をセットします。void
setOrderBy
(String orderBy) orderBy条件をセットします。void
setQueryType
(String queryType) QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。void
テーブル名をセットします。void
WHERE条件をセットします。void
setWhereNames
(String whNames) WHERE条件となるカラム名をCSV形式でセットします。
-
コンストラクタの詳細
-
QueryMaker
public QueryMaker()デフォルトコンストラクター- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
-
メソッドの詳細
-
getSelectSQL
データを検索する場合に使用するSQL文を作成します。 SELECT names FROM table WHERE where ORDER BY orderBy ; cnstKeys,cnstVals は、使いません。 where,orderBy は、それぞれ、値が存在しない場合は、設定されません。- 戻り値:
- 検索SQL
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成, 6.9.0.2 (2018/02/13) omitNamesの対応
- このメソッドは、nullを返しません
-
getInsertSQL
データを追加する場合に使用するSQL文を作成します。 INSERT INTO table ( names,cnstKeys ) VALUES ( values,cnstVals ) ; cnstKeys,cnstVals は、INSERTカラムとして使います。 where,orderBy は、使いません。- 戻り値:
- 追加SQL
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成, 6.9.0.2 (2018/02/13) omitNamesの対応
- このメソッドは、nullを返しません
-
getUpdateSQL
データを更新する場合に使用するSQL文を作成します。 UPDATE table SET names[i]=values[i], ・・・cnstKeys[i]=cnstVals[i], ・・・ WHERE where; cnstKeys,cnstVals は、UPDATEカラムとして使います。 orderBy は、使いません。- 戻り値:
- 更新SQL
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成, 6.9.9.1 (2018/08/27) cnstKeys,cnstValsは、個数違いの場合のみ、エラーです。
- このメソッドは、nullを返しません
-
getDeleteSQL
データを削除する場合に使用するSQL文を作成します。 DELETE FROM table WHERE where; cnstKeys,cnstVal,orderBys は、使いません。 where は、値が存在しない場合は、設定されません。 orderBy は、使いません。- 戻り値:
- 削除SQL
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- このメソッドは、nullを返しません
-
setQueryType
QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
queryType
- QUERYタイプ- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setTable
テーブル名をセットします。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
table
- テーブル名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
getTable
テーブル名を取得します。- 戻り値:
- テーブル名
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setNames
カラム名をセットします。 カラム名は、登録時に、大文字に変換しておきます。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
names
- キー(大文字のみ。内部で変換しておきます。)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
getNames
カラム名を取得します。 登録時に、すでに、大文字に変換していますので、 ここで取得するカラム名も、大文字に変換されています。- 戻り値:
- カラム名(大文字に変換済み)
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setOmitNames
除外するカラム名をセットします。 カラム名は、登録時に、大文字に変換しておきます。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
omitNames
- キー(大文字のみ。内部で変換しておきます。)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setWhere
WHERE条件をセットします。 whereNames属性と同時に使用する場合は、"AND" で、処理します。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
where
- WHERE条件- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setWhereNames
WHERE条件となるカラム名をCSV形式でセットします。 カラム名配列より、WHERE条件を、KEY=[KEY] 文字列で作成します。 where属性と同時に使用する場合は、"AND" で、処理します。 引数が nullか、ゼロ件配列の場合は、登録しません。- パラメータ:
whNames
- WHERE句作成のためのカラム名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setOrderBy
orderBy条件をセットします。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
orderBy
- orderBy条件- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setConstKeys
固定値のカラム名をセットします。 nullでなく、ゼロ文字列でない場合のみセットします。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
keys
- 固定値のカラム名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setConstVals
固定値のカラム名に対応した、固定値文字列をセットします。 nullでなく、ゼロ文字列でない場合のみセットします。 固定値は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
vals
- 固定値- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
getParamNames
PreparedStatement で、パラメータとなるカラム名の配列を返します。 これは、QUERYの変数部分 "[カラム名]" を、"?" に置き換えており、 この、カラム名の現れた順番に、配列として返します。 データベース処理では、パラメータを設定する場合に、このカラム名を取得し、 オリジナル(SELECT)のカラム番号から、その値を取得しなければなりません。 カラム名配列は、QUERYタイプ(queryType)に応じて作成されます。 SELECT : パラメータ は使わないので、長さゼロの配列 INSERT : where条件は使わず、names部分のみなので、0 ~ clmLen までの配列 UPDATE : names も、where条件も使うため、すべての配列 DELETE : names条件は使わず、where部分のみなので、clmLen ~ clmLen+whrLen までの配列(clmLen以降の配列)- パラメータ:
useInsert
- queryType="MERGE" の場合に、false:UPDATE , true:INSERT のパラメータのカラム名配列を返します。- 戻り値:
- パラメータとなるカラム名の配列
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成, 6.9.8.0 (2018/05/28) セットアップチェックが漏れていた。, 8.5.5.1 (2024/02/29) switch式の使用
- このメソッドは、nullを返しません
-