クラス DBUtil

java.lang.Object
org.opengion.fukurou.fileexec.DBUtil

public final class DBUtil extends Object
データベース処理を行う、簡易的なユーティリティークラスです。 staticメソッドしか持っていません。 sql文を execute( query ) する事により、データベースに書き込みます。 このクラスは、マルチスレッドに対して、安全です。
導入されたバージョン:
JDK5.0,
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final int
    データベースリトライ回数 10
    static final int
    データベースリトライの待ち時間(ミリ秒) 2000
    static final int
    データベースValid タイムアウト時間(秒) 10
    static final String
    データベースのキーワード "DATABASE"
    static final int
    データ検索時のフェッチサイズ 251
    static final String
    ドライバー "REALM_DRIVER"
    static final String
    ユーザーID "REALM_NAME"
    static final String
    パスワード "REALM_PASSWORD"
    static final String
    接続先URL "REALM_URL"
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    static List<String[]>
    dbQuery(String query, String... args)
    検索するデータベースを指定して、Queryを実行します(Transaction 対応)。
    static List<String[]>
    dbQuery(Transaction tarn, String query, String... args)
    検索するデータベースを指定して、Queryを実行します(Transaction 対応)。
    static int
    execute(String query, String... values)
    データ配列を渡して実際のDB処理を実行します。
    static int
    execute(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList)
    データ配列のListを渡して実際のDB処理を実行します。
    static int
    execute(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList, boolean useErrro)
    データ配列のListを渡して実際のDB処理を実行します。
    static int
    execute(String query, List<String[]> list)
    データ配列のListを渡して実際のDB処理を実行します。
    static int
    execute(String query, List<String[]> list, boolean useErrro)
    データ配列のListを渡して実際のDB処理を実行します。
    static int
    execute(Transaction tarn, String query, String... values)
    データ配列を渡して実際のDB処理を実行します。
    static Connection
    DataSource から、Connectionを取得して、返します。
    static String
    getDeleteSQL(String table, String where)
    データをデリートする場合に使用するSQL文を作成します。
    static String
    getInsertSQL(String table, String[] keys, String[] conKeys, String[] conVals)
    データをインサートする場合に使用するSQL文を作成します。
    static String
    getUpdateSQL(String table, String[] keys, String[] conKeys, String[] conVals, String where)
    データをアップデートする場合に使用するSQL文を作成します。
    static void
    引数を指定せず、オブジェクトを作成します。
    static void
    init(String... params)
    接続先URL、ドライバー、ユーザーID、パスワードを指定して、オブジェクトを作成します。
    static void
    init(Map<String,String> prmMap)
    接続先URL、ドライバー、ユーザーID、パスワードなどを含んだMapを指定して、オブジェクトを作成します。
    static boolean
    接続先がORACLEかどうかを返します。
    static boolean
    DataSourceの初期化が完了していれば、true を返します。
    static List<String[]>
    ResultSet より、結果の文字列配列を作成します。

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

  • メソッドの詳細

    • init

      public static void init()
      引数を指定せず、オブジェクトを作成します。 System.getProperty より取得し、さらに、そこから取得できなかった 場合は、環境変数から、取得します。
      関連項目:
      変更履歴:
      7.2.3.1 (2020/04/17) System.getenv → HybsConst.getenv 変更(サービス化対応)
    • init

      public static void init(Map<String,String> prmMap)
      接続先URL、ドライバー、ユーザーID、パスワードなどを含んだMapを指定して、オブジェクトを作成します。 Mapに指定のキーが含まれない場合は、System.getProperty より取得し、さらに、そこから取得できなかった 場合は、環境変数から、取得します。
      パラメータ:
      prmMap - 必要情報を含んだMapオブジェクト
      関連項目:
      変更履歴:
      7.2.3.1 (2020/04/17) System.getenv → HybsConst.getenv 変更(サービス化対応)
    • init

      public static void init(String... params)
      接続先URL、ドライバー、ユーザーID、パスワードを指定して、オブジェクトを作成します。 params は、必ず、4つ必要です。
      パラメータ:
      params - 接続先URL、ドライバー、ユーザーID、パスワード
      関連項目:
    • isReady

      public static boolean isReady()
      DataSourceの初期化が完了していれば、true を返します。 初期化は、#init(String...) メソッドの呼び出して、完了します。 #crear() で、未完了に戻ります。
      戻り値:
      初期化が完了しているかどうか
      関連項目:
    • isOracle

      public static boolean isOracle()
      接続先がORACLEかどうかを返します。 ORACLE の場合は、true を返します。
      戻り値:
      接続先がORACLEかどうか[true:ORACLE false:その他]
    • getConnection

      public static Connection getConnection() throws SQLException
      DataSource から、Connectionを取得して、返します。
      戻り値:
      DataSourceから、Connectionを取得して、返します。
      例外:
      SQLException - SQLエラーが発生した場合
      変更履歴:
      6.8.2.2 (2017/11/02) コネクションの再取得をリトライします。, 7.2.5.0 (2020/06/01) DB処理の実行に失敗のエラーは、3回までは、何も出さない。
    • execute

      public static int execute(String query, String... values)
      データ配列を渡して実際のDB処理を実行します。 ここでは、1行だけ処理するための簡易メソッドを提供します。
      パラメータ:
      query - 実行するSQL文
      values - ?に割り当てる設定値
      戻り値:
      ここでの処理件数
      例外:
      RuntimeException - Connection DB処理の実行に失敗した場合
    • execute

      public static int execute(Transaction tarn, String query, String... values)
      データ配列を渡して実際のDB処理を実行します。 ここでは、1行だけ処理するための簡易メソッドを提供します。
      パラメータ:
      tarn - 外部から指定するTransactionオブジェクト
      query - 実行するSQL文
      values - ?に割り当てる設定値
      戻り値:
      ここでの処理件数
      例外:
      RuntimeException - Connection DB処理の実行に失敗した場合
      変更履歴:
      7.4.2.0 (2021/05/14) 外部から指定するTransactionオブジェクト 対応
    • execute

      public static int execute(String query, List<String[]> list)
      データ配列のListを渡して実際のDB処理を実行します。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。
      パラメータ:
      query - 実行するSQL文
      list - ?に割り当てる設定値
      戻り値:
      ここでの処理件数
      例外:
      RuntimeException - Connection DB処理の実行に失敗した場合
      変更履歴:
      7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
    • execute

      public static int execute(String query, List<String[]> list, boolean useErrro)
      データ配列のListを渡して実際のDB処理を実行します。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。 処理の途中で整合性制約違反が発生した場合に継続するかどうかを指定できるフラグを追加しています。 false に設定した場合は、エラーが発生しても処理を継続して、commit します。(7.4.1.0 (2021/04/23) )
      パラメータ:
      query - 実行するSQL文
      list - ?に割り当てる設定値
      useErrro - false に設定すると、途中で整合性制約違反が発生しても処理を継続する。
      戻り値:
      ここでの処理件数
      例外:
      RuntimeException - Connection DB処理の実行に失敗した場合
      変更履歴:
      6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加, 7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
    • execute

      public static int execute(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList)
      データ配列のListを渡して実際のDB処理を実行します。(暫定メソッド) これは、updQueryで、更新してみて、0件の場合、insQuery で追加処理を行います。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。 処理の途中で整合性制約違反が発生した場合に継続するかどうかを指定できるフラグを追加しています。 false に設定した場合は、エラーが発生しても処理を継続して、commit します。 (7.4.1.0 (2021/04/23) )
      パラメータ:
      insQuery - 追加するSQL文
      updQuery - 更新するSQL文
      insList - ?に割り当てる設定値
      updList - ?に割り当てる設定値
      戻り値:
      ここでの処理件数
      例外:
      RuntimeException - Connection DB処理の実行に失敗した場合
      変更履歴:
      7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
    • execute

      public static int execute(String insQuery, String updQuery, List<String[]> insList, List<String[]> updList, boolean useErrro)
      データ配列のListを渡して実際のDB処理を実行します。(暫定メソッド) これは、updQueryで、更新してみて、0件の場合、insQuery で追加処理を行います。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。
      パラメータ:
      insQuery - 追加するSQL文
      updQuery - 更新するSQL文
      insList - ?に割り当てる設定値
      updList - ?に割り当てる設定値
      useErrro - false に設定すると、途中で整合性制約違反が発生しても処理を継続する。
      戻り値:
      ここでの処理件数
      例外:
      RuntimeException - Connection DB処理の実行に失敗した場合
      変更履歴:
      6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加, 7.4.1.0 (2021/04/23) 途中で整合性制約違反が発生した場合に継続するかどうかを指定できるようにします。
    • dbQuery

      public static List<String[]> dbQuery(String query, String... args)
      検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は、すべて文字列に変換されて格納されます。
      パラメータ:
      query - ステートメント文字列
      args - オブジェクトの引数配列
      戻り値:
      検索結果のリスト配列(結果が無ければ、サイズゼロのリスト)
      例外:
      RuntimeException - DB検索処理の実行に失敗した場合
      このメソッドは、nullを返しません
    • dbQuery

      public static List<String[]> dbQuery(Transaction tarn, String query, String... args)
      検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は、すべて文字列に変換されて格納されます。
      パラメータ:
      tarn - 外部から指定するTransactionオブジェクト
      query - ステートメント文字列
      args - オブジェクトの引数配列
      戻り値:
      検索結果のリスト配列(結果が無ければ、サイズゼロのリスト)
      例外:
      RuntimeException - DB検索処理の実行に失敗した場合
      変更履歴:
      7.4.2.0 (2021/05/14) 外部から指定するTransactionオブジェクト 対応
      このメソッドは、nullを返しません
    • resultToArray

      public static List<String[]> resultToArray(ResultSet resultSet) throws SQLException
      ResultSet より、結果の文字列配列を作成します。 結果は、すべて文字列に変換されて格納されます。 移動したメソッドで使われているのでこれも移動
      パラメータ:
      resultSet - ResultSetオブジェクト
      戻り値:
      ResultSetの検索結果リスト配列
      例外:
      SQLException - データベース・アクセス・エラーが発生した場合
      このメソッドは、nullを返しません
    • getInsertSQL

      public static String getInsertSQL(String table, String[] keys, String[] conKeys, String[] conVals)
      データをインサートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 conKeysとconValsは、固定値のキーと値です。 conKeys,conVals がnullの場合は、これらの値を使用しません。
      パラメータ:
      table - テーブルID
      keys - 設定値に対応するキー配列
      conKeys - 固定値の設定値に対応するキー配列
      conVals - 固定値に対応する値配列
      戻り値:
      インサートSQL
      このメソッドは、nullを返しません
    • getUpdateSQL

      public static String getUpdateSQL(String table, String[] keys, String[] conKeys, String[] conVals, String where)
      データをアップデートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 WHERE 文字列は、この、? も含めたWHERE条件の文字列を渡します。 WHERE条件の場合は、この、?に、関数を設定したり、条件を指定したり、 色々なケースがあるため、単純にキーだけ指定する方法では、対応範囲が 限られるためです。 conKeysとconValsは、固定値のキーと値です。 conKeys,conVals,where がnullの場合は、これらの値を使用しません。
      パラメータ:
      table - テーブルID
      keys - 設定値に対応するキー配列
      conKeys - 固定値の設定値に対応するキー配列
      conVals - 固定値に対応する値配列(VARCHARのみ)
      where - WHERE条件式
      戻り値:
      アップデートSQL
      変更履歴:
      7.2.5.0 (2020/06/01) UPDATEで、? を含むキーワードを、処理できるようにします。
      このメソッドは、nullを返しません
    • getDeleteSQL

      public static String getDeleteSQL(String table, String where)
      データをデリートする場合に使用するSQL文を作成します。 これは、key に対応した ? 文字列で、SQL文を作成します。 実際の値設定は、この、キーの並び順に応じた値を設定することになります。 WHERE 文字列は、この、? も含めたWHERE条件の文字列を渡します。 WHERE条件の場合は、この、?に、関数を設定したり、条件を指定したり、 色々なケースがあるため、単純にキーだけ指定する方法では、対応範囲が 限られるためです。
      パラメータ:
      table - テーブルID
      where - 設定値に対応するキー配列(可変長引数)
      戻り値:
      デリートSQL
      このメソッドは、nullを返しません