パッケージ org.opengion.fukurou.db
クラス QueryMaker
- java.lang.Object
-
- org.opengion.fukurou.db.QueryMaker
-
public class QueryMaker extends Object
QueryMaker は、カラム名などから、SELECT,INSERT,UPDATE,DALETE 文字列を作成するクラスです。 基本的には、カラム名と、それに対応する値のセットで、QUERY文を作成します。 値には、[カラム名] が使用でき、出力される値として、? が使われます。 これは、PreparedStatement に対する引数で、処理を行うためです。 この[カラム名]のカラム名は、検索された側のカラム名で、INSERT/UPDATE/DELETE等が実行される データベース(テーブル)のカラム名ではありません。(偶然、一致しているかどうかは別として)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- バージョン
- 6.8.6.0 (2018/01/19)
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK6.0,
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 QueryMaker()デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 StringgetDeleteSQL()データを削除する場合に使用するSQL文を作成します。StringgetInsertSQL()データを追加する場合に使用するSQL文を作成します。StringgetNames()カラム名を取得します。String[]getParamNames(boolean useInsert)PreparedStatement で、パラメータとなるカラム名の配列を返します。StringgetSelectSQL()データを検索する場合に使用するSQL文を作成します。StringgetTable()テーブル名を取得します。StringgetUpdateSQL()データを更新する場合に使用するSQL文を作成します。voidsetConstKeys(String keys)固定値のカラム名をセットします。voidsetConstVals(String vals)固定値のカラム名に対応した、固定値文字列をセットします。voidsetNames(String names)カラム名をセットします。voidsetOmitNames(String omitNames)除外するカラム名をセットします。voidsetOrderBy(String orderBy)orderBy条件をセットします。voidsetQueryType(String queryType)QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。voidsetTable(String table)テーブル名をセットします。voidsetWhere(String where)WHERE条件をセットします。voidsetWhereNames(String whNames)WHERE条件となるカラム名をCSV形式でセットします。
-
-
-
メソッドの詳細
-
getSelectSQL
public String 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
public String 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
public String 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
public String getDeleteSQL()
データを削除する場合に使用するSQL文を作成します。 DELETE FROM table WHERE where; cnstKeys,cnstVal,orderBys は、使いません。 where は、値が存在しない場合は、設定されません。 orderBy は、使いません。- 戻り値:
- 削除SQL
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
- このメソッドは、nullを返しません
-
setQueryType
public void setQueryType(String queryType)
QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
queryType- QUERYタイプ- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setTable
public void setTable(String table)
テーブル名をセットします。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
table- テーブル名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
getTable
public String getTable()
テーブル名を取得します。- 戻り値:
- テーブル名
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setNames
public void setNames(String names)
カラム名をセットします。 カラム名は、登録時に、大文字に変換しておきます。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
names- キー(大文字のみ。内部で変換しておきます。)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
getNames
public String getNames()
カラム名を取得します。 登録時に、すでに、大文字に変換していますので、 ここで取得するカラム名も、大文字に変換されています。- 戻り値:
- カラム名(大文字に変換済み)
- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setOmitNames
public void setOmitNames(String omitNames)
除外するカラム名をセットします。 カラム名は、登録時に、大文字に変換しておきます。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
omitNames- キー(大文字のみ。内部で変換しておきます。)- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setWhere
public void setWhere(String where)
WHERE条件をセットします。 whereNames属性と同時に使用する場合は、"AND" で、処理します。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
where- WHERE条件- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setWhereNames
public void setWhereNames(String whNames)
WHERE条件となるカラム名をCSV形式でセットします。 カラム名配列より、WHERE条件を、KEY=[KEY] 文字列で作成します。 where属性と同時に使用する場合は、"AND" で、処理します。 引数が nullか、ゼロ件配列の場合は、登録しません。- パラメータ:
whNames- WHERE句作成のためのカラム名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setOrderBy
public void setOrderBy(String orderBy)
orderBy条件をセットします。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
orderBy- orderBy条件- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setConstKeys
public void setConstKeys(String keys)
固定値のカラム名をセットします。 nullでなく、ゼロ文字列でない場合のみセットします。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
keys- 固定値のカラム名- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
setConstVals
public void setConstVals(String vals)
固定値のカラム名に対応した、固定値文字列をセットします。 nullでなく、ゼロ文字列でない場合のみセットします。 固定値は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。- パラメータ:
vals- 固定値- 変更履歴:
- 6.8.6.0 (2018/01/19) 新規作成
-
getParamNames
public String[] getParamNames(boolean useInsert)
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) セットアップチェックが漏れていた。
- このメソッドは、nullを返しません
-
-