パッケージ 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を返しません