クラス DBUtil


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

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

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

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

      • DATABASE_KEY

        public static final java.lang.String DATABASE_KEY
        データベースのキーワード "DATABASE"
        関連項目:
        定数フィールド値
      • DRIVER_KEY

        public static final java.lang.String DRIVER_KEY
        ドライバー "REALM_DRIVER"
        関連項目:
        定数フィールド値
      • NAME_KEY

        public static final java.lang.String NAME_KEY
        ユーザーID "REALM_NAME"
        関連項目:
        定数フィールド値
      • PASSWORD_KEY

        public static final java.lang.String PASSWORD_KEY
        パスワード "REALM_PASSWORD"
        関連項目:
        定数フィールド値
      • CONN_SLEEP_TIME

        public static final int CONN_SLEEP_TIME
        データベースリトライの待ち時間(ミリ秒) 2000
        関連項目:
        定数フィールド値
      • CONN_RETRY_COUNT

        public static final int CONN_RETRY_COUNT
        データベースリトライ回数 10
        関連項目:
        定数フィールド値
      • CONN_VALID_TIMEOUT

        public static final int CONN_VALID_TIMEOUT
        データベースValid タイムアウト時間(秒) 10
        関連項目:
        定数フィールド値
      • DB_FETCH_SIZE

        public static final int DB_FETCH_SIZE
        データ検索時のフェッチサイズ 251
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • init

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

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

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

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

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

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

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

        public static int execute​(java.lang.String query,
                                  java.util.List<java.lang.String[]> list)
        データ配列のListを渡して実際のDB処理を実行します。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。
        パラメータ:
        query - 実行するSQL文
        list - ?に割り当てる設定値
        戻り値:
        ここでの処理件数
        例外:
        java.lang.RuntimeException - Connection DB処理の実行に失敗した場合
        変更履歴:
        6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加
      • execute

        public static int execute​(java.lang.String insQuery,
                                  java.lang.String updQuery,
                                  java.util.List<java.lang.String[]> insList,
                                  java.util.List<java.lang.String[]> updList)
        データ配列のListを渡して実際のDB処理を実行します。(暫定メソッド) これは、updQueryで、更新してみて、0件の場合、insQuery で追加処理を行います。 データ配列は、1行分のデータに対する設定値の配列です。 これは、keys で指定した並び順と一致している必要があります。
        パラメータ:
        insQuery - 追加するSQL文
        updQuery - 更新するSQL文
        insList - ?に割り当てる設定値
        updList - ?に割り当てる設定値
        戻り値:
        ここでの処理件数
        例外:
        java.lang.RuntimeException - Connection DB処理の実行に失敗した場合
        変更履歴:
        6.8.1.5 (2017/09/08) LOGGER.debug 情報の追加
      • dbQuery

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

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

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

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