パッケージ 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,
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
    デフォルトコンストラクター
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    データを削除する場合に使用するSQL文を作成します。
    データを追加する場合に使用するSQL文を作成します。
    カラム名を取得します。
    getParamNames(boolean useInsert)
    PreparedStatement で、パラメータとなるカラム名の配列を返します。
    データを検索する場合に使用するSQL文を作成します。
    テーブル名を取得します。
    データを更新する場合に使用するSQL文を作成します。
    void
    固定値のカラム名をセットします。
    void
    固定値のカラム名に対応した、固定値文字列をセットします。
    void
    カラム名をセットします。
    void
    setOmitNames(String omitNames)
    除外するカラム名をセットします。
    void
    setOrderBy(String orderBy)
    orderBy条件をセットします。
    void
    setQueryType(String queryType)
    QUERYタイプ(SELECT,INSERT,UPDATE,DELETE,MERGE) を指定します。
    void
    テーブル名をセットします。
    void
    WHERE条件をセットします。
    void
    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) セットアップチェックが漏れていた。, 8.5.5.1 (2024/02/29) switch式の使用
      このメソッドは、nullを返しません