パッケージ org.opengion.fukurou.db

クラス DBUtil


  • public final class DBUtil
    extends java.lang.Object
    データベース関連の便利なメソッドを集めた簡易ユーティリティークラスです。 全てのメソッドは、static メソッドになっています。
    機能分類
    DB/Shell制御
    変更履歴:
    2.1.1.1 (2002/11/15) Serializable インターフェースを削除する。, 4.0.0.0 (2007/10/16) DBアクセス関係のメソッドのみをパッケージ移動(hayabusa/db ⇒ fukurou/db), 6.0.4.0 (2014/11/28) ResultSetValue クラスで、ResultSet から値を取得する処理を移植
    バージョン
    4.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK5.0,
    • メソッドの概要

      すべてのメソッド staticメソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      static java.lang.String[] dbCallExecute​(java.lang.String stmt, java.lang.String[] args, ApplicationInfo appInfo)
      初期データベースに接続して、CallableStatement(PL/SQL)を実行します(互換性確保のため残しています)。
      static java.lang.String[] dbCallExecute​(java.lang.String stmt, java.lang.String[] args, ApplicationInfo appInfo, java.lang.String dbid)
      検索するデータベースを指定して、CallableStatement(PL/SQL)を実行します(互換性確保のため残しています)。
      static java.lang.String[] dbCallExecute​(java.lang.String stmt, java.lang.String[] args, Transaction tran)
      初期データベースに接続して、CallableStatement(PL/SQL)を実行します(Transaction 対応)。
      static java.lang.String[] dbCallExecute​(java.lang.String stmt, java.lang.String[] args, Transaction tran, java.lang.String dbid)
      検索するデータベースを指定して、CallableStatement(PL/SQL)を実行します(Transaction 対応)。
      static java.lang.String[][] dbExecute​(java.lang.String stmt, java.lang.String[] args, ApplicationInfo appInfo)
      初期データベースに接続して、Queryを実行します(互換性確保のため残しています)。
      static java.lang.String[][] dbExecute​(java.lang.String stmt, java.lang.String[] args, ApplicationInfo appInfo, java.lang.String dbid)
      検索するデータベースを指定して、Queryを実行します(互換性確保のため残しています)。
      static java.lang.String[][] dbExecute​(java.lang.String stmt, java.lang.String[] args, ApplicationInfo appInfo, java.lang.String dbid, boolean useHeader)
      検索するデータベースを指定して、Queryを実行します(互換性確保のため残しています)。
      static java.lang.String[][] dbExecute​(java.lang.String stmt, java.lang.String[] args, Transaction tran)
      初期データベースに接続して、Queryを実行します(Transaction 対応)。
      static java.lang.String[][] dbExecute​(java.lang.String stmt, java.lang.String[] args, Transaction tran, java.lang.String dbid)
      検索するデータベースを指定して、Queryを実行します(Transaction 対応)。
      static java.lang.String[][] dbExecute​(java.lang.String stmt, java.lang.String[] args, Transaction tran, java.lang.String dbid, boolean useHeader)
      検索するデータベースを指定して、Queryを実行します(Transaction 対応)。
      static int dbExist​(java.lang.String stmt, java.lang.String[] args, ApplicationInfo appInfo, java.lang.String dbid)
      SQL文の実行結果において、データの件数を取得します(互換性確保のため残しています)。
      static int dbExist​(java.lang.String stmt, java.lang.String[] args, Transaction tran, java.lang.String dbid)
      SQL文の実行結果において、データの件数を取得します(Transaction 対応)。
      static java.lang.String getProductName​(java.sql.Connection conn)
      コネクションオブジェクトからデータベースのProductNameを取り出します。
      static java.lang.String[][] resultToArray​(java.sql.ResultSet resultSet, boolean useHeader)
      ResultSet より、結果の文字列配列を作成します。
      • クラスから継承されたメソッド java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • メソッドの詳細

      • dbExecute

        public static java.lang.String[][] dbExecute​(java.lang.String stmt,
                                                     java.lang.String[] args,
                                                     ApplicationInfo appInfo)
        初期データベースに接続して、Queryを実行します(互換性確保のため残しています)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        appInfo - アプリ情報オブジェクト
        戻り値:
        検索結果の配列
        変更履歴:
        3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更, 5.1.9.0 (2010/08/01) Transaction 対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) TransactionReal と close() 処理をセットで実行する。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。
      • dbExecute

        public static java.lang.String[][] dbExecute​(java.lang.String stmt,
                                                     java.lang.String[] args,
                                                     Transaction tran)
        初期データベースに接続して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。 ここでは、Transactionオブジェクトから、Connection を取り出して使用します。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        tran - Transactionオブジェクト
        戻り値:
        検索結果の配列
        変更履歴:
        5.1.9.0 (2010/08/01) 新規作成 Transaction 対応
      • dbExecute

        public static java.lang.String[][] dbExecute​(java.lang.String stmt,
                                                     java.lang.String[] args,
                                                     ApplicationInfo appInfo,
                                                     java.lang.String dbid)
        検索するデータベースを指定して、Queryを実行します(互換性確保のため残しています)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。 追加:検索以外のSQLも実行できます。結果は、null を返します。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        appInfo - アプリ情報オブジェクト
        dbid - 接続先ID
        戻り値:
        検索結果の配列
        変更履歴:
        3.0.0.0 (2002/12/25) 検索のみのクエリーから、何でもありのクエリーに変更, 2.3.1.3 (2003/01/28) Open Cursor が、大量に残る件の対応。ResultSet を close(), 3.8.0.8 (2005/10/03) エラーメッセージの出力順をメッセージ+Queryに変更します。, 3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 4.0.0.1 (2007/12/03) try ~ catch ~ finally をきちんと行う。, 5.1.9.0 (2010/08/01) Transaction 対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) TransactionReal と close() 処理をセットで実行する。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。
      • dbExecute

        public static java.lang.String[][] dbExecute​(java.lang.String stmt,
                                                     java.lang.String[] args,
                                                     Transaction tran,
                                                     java.lang.String dbid)
        検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。 追加:検索以外のSQLも実行できます。結果は、null を返します。 ここでは、Transactionオブジェクトから、Connection を取り出して使用します。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        tran - Transactionオブジェクト
        dbid - 接続先ID
        戻り値:
        検索結果の配列
        変更履歴:
        5.1.9.0 (2010/08/01) 新規作成 Transaction 対応
      • dbExecute

        public static java.lang.String[][] dbExecute​(java.lang.String stmt,
                                                     java.lang.String[] args,
                                                     ApplicationInfo appInfo,
                                                     java.lang.String dbid,
                                                     boolean useHeader)
        検索するデータベースを指定して、Queryを実行します(互換性確保のため残しています)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。 追加:検索以外のSQLも実行できます。結果は、null を返します。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        appInfo - アプリ情報オブジェクト
        dbid - 接続先ID
        useHeader - 1行目にヘッダーを含めるか
        戻り値:
        検索結果の配列
        変更履歴:
        4.3.7.0 (2009/06/01) 新規作成, 5.1.2.0 (2010/01/01) setObject に ParameterMetaData の getParameterType を渡す。(PostgreSQL対応), 5.1.9.0 (2010/08/01) Transaction 対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) TransactionReal と close() 処理をセットで実行する。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。
      • dbExecute

        public static java.lang.String[][] dbExecute​(java.lang.String stmt,
                                                     java.lang.String[] args,
                                                     Transaction tran,
                                                     java.lang.String dbid,
                                                     boolean useHeader)
        検索するデータベースを指定して、Queryを実行します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索のみ実行します。 結果は,すべて文字列に変換されて格納されます。 追加:検索以外のSQLも実行できます。結果は、null を返します。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        tran - Transactionオブジェクト
        dbid - 接続先ID
        useHeader - 1行目にヘッダーを含めるか
        戻り値:
        検索結果の配列
        変更履歴:
        5.1.9.0 (2010/08/01) 新規作成 Transaction 対応, 5.3.8.0 (2011/08/01) Transaction を引数で受け取った場合は、close() しない。, 5.3.8.0 (2011/08/01) useParamMetaData を ConnectionFactory経由で取得。(PostgreSQL対応)、setNull 対応, 6.4.2.1 (2016/02/05) try-with-resources 文で記述。, 6.4.3.2 (2016/02/19) args が null でなく、length==0 でない場合のみ、処理する。, 6.9.3.0 (2018/03/26) データ検索時のフェッチサイズを設定。
      • dbCallExecute

        public static java.lang.String[] dbCallExecute​(java.lang.String stmt,
                                                       java.lang.String[] args,
                                                       ApplicationInfo appInfo)
        初期データベースに接続して、CallableStatement(PL/SQL)を実行します(互換性確保のため残しています)。 ステートメントと引数により、CallableStatement クエリーを実行します。 結果は,ステータスとエラーメッセージを返します。便宜的に、String配列に 設定して返します。 ステートメント文字列には、 { call PLSQL( ?,?,?・・・ ) } となります。 第一引数、第二引数は、OUT属性で、結果(STATUS)とエラー時の内容(ERR_CODE)を返します。 第三引数以降の ? には、オブジェクトの引数配列 が順に割り当てられます。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        appInfo - アプリ情報オブジェクト
        戻り値:
        実行結果([0]=ステータス、[1]=エラーメッセージ
        変更履歴:
        3.8.0.0 (2005/06/07) 新規追加, 3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 4.0.0.0 (2007/10/10) dbid の初期値を、"DEFAULT" から null に変更, 5.1.9.0 (2010/08/01) Transaction 対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) TransactionReal と close() 処理をセットで実行する。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。
      • dbCallExecute

        public static java.lang.String[] dbCallExecute​(java.lang.String stmt,
                                                       java.lang.String[] args,
                                                       Transaction tran)
        初期データベースに接続して、CallableStatement(PL/SQL)を実行します(Transaction 対応)。 ステートメントと引数により、CallableStatement クエリーを実行します。 結果は,ステータスとエラーメッセージを返します。便宜的に、String配列に 設定して返します。 ステートメント文字列には、 { call PLSQL( ?,?,?・・・ ) } となります。 第一引数、第二引数は、OUT属性で、結果(STATUS)とエラー時の内容(ERR_CODE)を返します。 第三引数以降の ? には、オブジェクトの引数配列 が順に割り当てられます。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        tran - Transactionオブジェクト
        戻り値:
        実行結果([0]=ステータス、[1]=エラーメッセージ
        変更履歴:
        5.1.9.0 (2010/08/01) 新規作成 Transaction 対応
      • dbCallExecute

        public static java.lang.String[] dbCallExecute​(java.lang.String stmt,
                                                       java.lang.String[] args,
                                                       ApplicationInfo appInfo,
                                                       java.lang.String dbid)
        検索するデータベースを指定して、CallableStatement(PL/SQL)を実行します(互換性確保のため残しています)。 ステートメントと引数により、CallableStatement クエリーを実行します。 結果は,ステータスとエラーメッセージを返します。便宜的に、String配列に 設定して返します。 ステートメント文字列には、 { call PLSQL( ?,?,?・・・ ) } となります。 第一引数、第二引数は、OUT属性で、結果(STATUS)とエラー時の内容(ERR_CODE)を返します。 第三引数以降の ? には、オブジェクトの引数配列 が順に割り当てられます。 検索するデータベースは、DEFAULT です。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        appInfo - アプリ情報オブジェクト
        dbid - 接続先ID
        戻り値:
        実行結果([0]=ステータス、[1]=エラーメッセージ
        変更履歴:
        3.8.0.0 (2005/06/07) 新規追加, 3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 4.0.0.1 (2007/12/03) try ~ catch ~ finally をきちんと行う。, 5.1.9.0 (2010/08/01) Transaction 対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) TransactionReal と close() 処理をセットで実行する。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。
      • dbCallExecute

        public static java.lang.String[] dbCallExecute​(java.lang.String stmt,
                                                       java.lang.String[] args,
                                                       Transaction tran,
                                                       java.lang.String dbid)
        検索するデータベースを指定して、CallableStatement(PL/SQL)を実行します(Transaction 対応)。 ステートメントと引数により、CallableStatement クエリーを実行します。 結果は,ステータスとエラーメッセージを返します。便宜的に、String配列に 設定して返します。 ステートメント文字列には、 { call PLSQL( ?,?,?・・・ ) } となります。 第一引数、第二引数は、OUT属性で、結果(STATUS)とエラー時の内容(ERR_CODE)を返します。 第三引数以降の ? には、オブジェクトの引数配列 が順に割り当てられます。 検索するデータベースは、DEFAULT です。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        tran - Transactionオブジェクト
        dbid - 接続先ID
        戻り値:
        実行結果([0]=ステータス、[1]=エラーメッセージ
        変更履歴:
        5.1.9.0 (2010/08/01) 新規作成 Transaction 対応, 5.3.8.0 (2011/08/01) Transaction を引数で受け取った場合は、close() しない。, 6.4.2.1 (2016/02/05) try-with-resources 文で記述。, 6.9.3.0 (2018/03/26) データ検索時のフェッチサイズを設定。
      • dbExist

        public static int dbExist​(java.lang.String stmt,
                                  java.lang.String[] args,
                                  ApplicationInfo appInfo,
                                  java.lang.String dbid)
        SQL文の実行結果において、データの件数を取得します(互換性確保のため残しています)。 ステートメントと引数により、Prepared クエリーの検索を実行します。 結果は、件数を数値で返します。 あくまで、存在チェックに必要な処理のみ行っているため、通常の検索より高速です。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        appInfo - アプリ情報オブジェクト
        dbid - 接続先ID
        戻り値:
        検索結果(データの件数)
        変更履歴:
        3.5.0.0 (2003/09/17) 新規作成, 3.8.0.8 (2005/10/03) エラーメッセージの出力順をメッセージ+Queryに変更します。, 3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 4.0.0.1 (2007/12/03) try ~ catch ~ finally をきちんと行う。, 5.1.2.0 (2010/01/01) setObject に ParameterMetaData の getParameterType を渡す。(PostgreSQL対応), 5.1.9.0 (2010/08/01) Transaction 対応します。, 5.3.7.0 (2011/07/01) TransactionReal の引数変更, 5.3.8.0 (2011/08/01) TransactionReal と close() 処理をセットで実行する。, 6.3.6.1 (2015/08/28) Transaction でAutoCloseableを使用したtry-with-resources構築に対応。
      • dbExist

        public static int dbExist​(java.lang.String stmt,
                                  java.lang.String[] args,
                                  Transaction tran,
                                  java.lang.String dbid)
        SQL文の実行結果において、データの件数を取得します(Transaction 対応)。 ステートメントと引数により、Prepared クエリーの検索を実行します。 結果は、件数を数値で返します。 あくまで、存在チェックに必要な処理のみ行っているため、通常の検索より高速です。
        パラメータ:
        stmt - ステートメント文字列
        args - オブジェクトの引数配列
        tran - Transactionオブジェクト
        dbid - 接続先ID
        戻り値:
        検索結果(データの件数)
        変更履歴:
        5.1.9.0 (2010/08/01) 新規作成 Transaction 対応, 5.3.8.0 (2011/08/01) Transaction を引数で受け取った場合は、close() しない。, 5.3.8.0 (2011/08/01) useParamMetaData を ConnectionFactory経由で取得。(PostgreSQL対応)、setNull 対応, 6.4.2.1 (2016/02/05) try-with-resources 文で記述。, 6.9.3.0 (2018/03/26) データ検索時のフェッチサイズを設定。
      • resultToArray

        public static java.lang.String[][] resultToArray​(java.sql.ResultSet resultSet,
                                                         boolean useHeader)
                                                  throws java.sql.SQLException
        ResultSet より、結果の文字列配列を作成します。 結果は,すべて文字列に変換されて格納されます。 移動したメソッドで使われているのでこれも移動
        パラメータ:
        resultSet - ResultSetオブジェクト
        useHeader - true:ヘッダーを第一行に含める/false:含めない
        戻り値:
        ResultSetの検索結果配列
        例外:
        java.sql.SQLException - データベース・アクセス・エラーが発生した場合
        変更履歴:
        3.1.0.0 (2003/03/20) Vector を使用している箇所で、非同期でも構わない箇所を、ArrayList に置換え。, 3.8.0.8 (2005/10/03) エラーメッセージの出力順をメッセージ+Queryに変更します。, 4.0.0.0 (2005/01/31) private ⇒ public , ヘッダー情報の取得有無フラグの追加, 5.6.7.0 (2013/07/27) CLOB 対応, 6.0.4.0 (2014/11/28) ResultSetValue クラスで、ResultSet から値を取得する処理を行う。
      • getProductName

        public static java.lang.String getProductName​(java.sql.Connection conn)
        コネクションオブジェクトからデータベースのProductNameを取り出します。 ProductName は、小文字化して返します。 また、処理エラーが発生した場合は、"none" を返します。 ここでは、SQLException は、発生させません。
        パラメータ:
        conn - コネクションオブジェクト
        戻り値:
        データベースのProductName
        変更履歴:
        5.6.7.0 (2013/07/27) 新規追加, 5.6.7.4 (2013/08/30) ProductNameの小文字化対応, 6.7.4.2 (2017/02/24) ProductNameの大文字化対応