パッケージ org.opengion.fukurou.db

## クラス QueryMaker

- java.lang.Object
- - org.opengion.fukurou.db.QueryMaker

-     public class QueryMaker
      extends java.lang.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メソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `java.lang.String` | `getDeleteSQL()` | データを削除する場合に使用するSQL文を作成します。
    `java.lang.String` | `getInsertSQL()` | データを追加する場合に使用するSQL文を作成します。
    `java.lang.String` | `getNames()` | カラム名を取得します。
    `java.lang.String[]` | `getParamNames​(boolean useInsert)` | PreparedStatement で、パラメータとなるカラム名の配列を返します。
    `java.lang.String` | `getSelectSQL()` | データを検索する場合に使用するSQL文を作成します。
    `java.lang.String` | `getTable()` | テーブル名を取得します。
    `java.lang.String` | `getUpdateSQL()` | データを更新する場合に使用するSQL文を作成します。
    `void` | `setConstKeys​(java.lang.String keys)` | 固定値のカラム名をセットします。
    `void` | `setConstVals​(java.lang.String vals)` | 固定値のカラム名に対応した、固定値文字列をセットします。
    `void` | `setNames​(java.lang.String names)` | カラム名をセットします。
    `void` | `setOmitNames​(java.lang.String omitNames)` | 除外するカラム名をセットします。
    `void` | `setOrderBy​(java.lang.String orderBy)` | orderBy条件をセットします。
    `void` | `setQueryType​(java.lang.String queryType)` | QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。
    `void` | `setTable​(java.lang.String table)` | テーブル名をセットします。
    `void` | `setWhere​(java.lang.String where)` | WHERE条件をセットします。
    `void` | `setWhereNames​(java.lang.String whNames)` | WHERE条件となるカラム名をCSV形式でセットします。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### QueryMaker

          public QueryMaker()

      デフォルトコンストラクター
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

  - ### メソッドの詳細

    - #### getSelectSQL

          public java.lang.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 java.lang.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 java.lang.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 java.lang.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​(java.lang.String queryType)

      QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `queryType` - QUERYタイプ
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setTable

          public void setTable​(java.lang.String table)

      テーブル名をセットします。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `table` - テーブル名
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### getTable

          public java.lang.String getTable()

      テーブル名を取得します。
      戻り値:
        テーブル名
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setNames

          public void setNames​(java.lang.String names)

      カラム名をセットします。 カラム名は、登録時に、大文字に変換しておきます。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `names` - キー（大文字のみ。内部で変換しておきます。）
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### getNames

          public java.lang.String getNames()

      カラム名を取得します。 登録時に、すでに、大文字に変換していますので、 ここで取得するカラム名も、大文字に変換されています。
      戻り値:
        カラム名(大文字に変換済み)
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setOmitNames

          public void setOmitNames​(java.lang.String omitNames)

      除外するカラム名をセットします。 カラム名は、登録時に、大文字に変換しておきます。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `omitNames` - キー（大文字のみ。内部で変換しておきます。）
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setWhere

          public void setWhere​(java.lang.String where)

      WHERE条件をセットします。 whereNames属性と同時に使用する場合は、"AND" で、処理します。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `where` - WHERE条件
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setWhereNames

          public void setWhereNames​(java.lang.String whNames)

      WHERE条件となるカラム名をCSV形式でセットします。 カラム名配列より、WHERE条件を、KEY=[KEY] 文字列で作成します。 where属性と同時に使用する場合は、"AND" で、処理します。 引数が nullか、ゼロ件配列の場合は、登録しません。
      パラメータ:
        `whNames` - WHERE句作成のためのカラム名
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setOrderBy

          public void setOrderBy​(java.lang.String orderBy)

      orderBy条件をセットします。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `orderBy` - orderBy条件
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setConstKeys

          public void setConstKeys​(java.lang.String keys)

      固定値のカラム名をセットします。 nullでなく、ゼロ文字列でない場合のみセットします。 カラム名は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `keys` - 固定値のカラム名
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### setConstVals

          public void setConstVals​(java.lang.String vals)

      固定値のカラム名に対応した、固定値文字列をセットします。 nullでなく、ゼロ文字列でない場合のみセットします。 固定値は、CSV形式でもかまいません。 引数が nullか、ゼロ文字列の場合は、登録しません。
      パラメータ:
        `vals` - 固定値
      変更履歴:
        6.8.6.0 (2018/01/19) 新規作成

    - #### getParamNames

          public java.lang.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を返しません