パッケージ 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) 新規作成
導入されたバージョン:
  JDK6.0,

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `QueryMaker()`
  デフォルトコンストラクター

- ## メソッドの概要

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