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

## クラス DatabaseConfig

- java.lang.Object
- - org.opengion.fukurou.db.DatabaseConfig

-     public class DatabaseConfig
      extends java.lang.Object

  DB設定XMLの内容をJAXBを利用してロードする Driverをロードする 上記２つの機能を備えたクラスです 外部からはgetDbidメソッドを利用してDB設定(ExpandedDbid型)を取得します。 DB設定情報が無い場合にXMLを読みにいきます。 このDBIDを決めるキーは、内部取り込み字に、大文字変換されますので、大文字・ 小文字の区別はありません。
  機能分類
    初期化
  変更履歴:
    4.0.0.0 (2007/10/25) 新規作成, 5.1.7.0 (2010/06/01) org.opengion.fukurou.xml.jaxb.dbid 関係 廃止
  バージョン
    4.0
  作成者
    高橋正和
  導入されたバージョン:
    JDK6.0,

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールド | 説明
    --- | --- | ---
    `static java.lang.String` | `DB_CONFIG_FILE` |

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `DatabaseConfig()` | 初期値を使ってXMLを読み込む xmlFilenameの初期値は..
    `DatabaseConfig​(java.lang.String infile)` | XMLファイルの名前を指定して読み込む

  - ### メソッドの概要

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `java.lang.String` | `getCodeKeyVal()` | DBID情報のキーとタイトルから、プルダウンメニューを作成するための情報を取得します。
    `EDbid` | `getDbid​(java.lang.String key)` | dbidKeyをキーにしてExpandedDbid型でマップの内容を返す。
    `java.lang.String[][]` | `getDbidInfo()` | 全てのDBIDの属性情報のリスト(配列)で返します。
    `static java.lang.String[]` | `getDbidInfoKeys()` | DBIDとして管理している項目のキーの一覧を配列形式で返します。
    `static java.lang.String` | `getDriverKey()` | DBドライバーの属性キーを返します。
    `java.lang.String[]` | `getDriverList()` | DBドライバーのリスト(配列)を返します。
    `void` | `reload()` | マップをクリアします。
    `void` | `setDbidInfo​(java.lang.String[][] dbidVals)` | 全てのDBIDの属性情報のリスト(配列)をセットします。
    `void` | `setDriverList​(java.lang.String... drivers)` | DBドライバーのリスト(配列)をセットします。

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### DB_CONFIG_FILE

          public static final java.lang.String DB_CONFIG_FILE

      関連項目:
        定数フィールド値

  - ### コンストラクタの詳細

    - #### DatabaseConfig

          public DatabaseConfig()

      初期値を使ってXMLを読み込む xmlFilenameの初期値は../DBConfig.xml
      変更履歴:
        4.3.1.1 (2008/08/23) 自分のコンストラクターを呼ぶように修正

    - #### DatabaseConfig

          public DatabaseConfig​(java.lang.String infile)

      XMLファイルの名前を指定して読み込む
      パラメータ:
        `infile` - XMLファイルの名前
      変更履歴:
        5.1.9.0 (2010/08/01) クラスローダー外からでもDBConfig.xmlを取得できるようにする, 5.6.7.0 (2013/07/27) オブジェクト作成時に初期化も行っておきます。, 5.6.8.2 (2013/09/20) Tomcat8で、クラスローダーが変更されているのでその対応, 5.7.2.2 (2014/01/24) WEB-INF/classes フォルダがないと、xmlURL がnull になる対応。, 5.7.2.3 (2014/01/31) ファイルの存在チェックを追加します。, 6.4.3.3 (2016/03/04) 初期 DBConfig.xml ファイルの設定。, 6.6.0.0 (2016/12/01) コンテキストパスから、##バージョン番号を取り去った値を返すようにします。, 6.8.5.1 (2018/01/15) ClassLoader変数名を、clsl から、loader に変更(他の変数名と整合性を持たす)。

  - ### メソッドの詳細

    - #### getDbid

          public EDbid getDbid​(java.lang.String key)

      dbidKeyをキーにしてExpandedDbid型でマップの内容を返す。 存在しない場合はNULLを返します。 キーが無い場合に初期化を行う。
      パラメータ:
        `key` - XMLで登録したdbidKey
      戻り値:
        EDbid型オブジェクト
      変更履歴:
        4.0.0.1 (2007/12/04) EDbid#clone() 廃止, 5.6.7.0 (2013/07/27) synchronized メソッドにします。, 6.0.0.1 (2014/04/25) Collections.synchronizedMap を使用します。

    - #### reload

          public void reload()

      マップをクリアします。 XMLファイルを再読み込みする場合に使用します。
      変更履歴:
        5.1.9.0 (2010/08/01) ドライバーのリストもクリアする。, 5.6.7.0 (2013/07/27) synchronized メソッドにします。, 6.0.0.1 (2014/04/25) Collections.synchronizedMap を使用します。

    - #### getDbidInfoKeys

          public static java.lang.String[] getDbidInfoKeys()

      DBIDとして管理している項目のキーの一覧を配列形式で返します。
      戻り値:
        項目のキー一覧
      変更履歴:
        5.1.9.0 (2010/08/01) 新規作成
      このメソッドは、nullを返しません

    - #### getDbidInfo

          public java.lang.String[][] getDbidInfo()

      全てのDBIDの属性情報のリスト(配列)で返します。 値の順番については、`getDbidInfoKeys()`で返されるキーの一覧と同じです。
      戻り値:
        全てのDBIDの属性情報のリスト(配列)
      関連項目:
        `getDbidInfoKeys()`
      変更履歴:
        5.1.9.0 (2010/08/01) 新規作成, 5.5.2.1 (2012/05/07) propertiesを出力, 5.6.6.0 (2013/07/05) 表題(title)属性を追加, 5.6.7.0 (2013/07/27) 内部MapをDBConfig.xmlの読み込み順に変更。, 6.3.9.0 (2015/11/06) Use block level rather than method level synchronization.(PMD)
      このメソッドは、nullを返しません

    - #### setDbidInfo

          public void setDbidInfo​(java.lang.String[][] dbidVals)

      全てのDBIDの属性情報のリスト(配列)をセットします。 このメソッドを呼び出すと、DBConfig.xmlで定義されているDBID情報一覧を"一旦削除し"、 その上で、引数のDBID情報一覧をDBConfig.xmlに書き込みます。 値の順番については、`getDbidInfoKeys()`で返されるキーの一覧と同じです。 書き込みの直前に、同じフォルダにタイムスタンプを付加したバックアップファイルを作成します。
      パラメータ:
        `dbidVals` - 全てのDBIDの属性情報の配列の配列
      関連項目:
        `getDbidInfoKeys()`
      変更履歴:
        5.1.9.0 (2010/08/01) 新規作成, 5.6.7.0 (2013/07/27) 内部MapをDBConfig.xmlの読み込み順に変更。

    - #### getDriverKey

          public static java.lang.String getDriverKey()

      DBドライバーの属性キーを返します。
      戻り値:
        DBドライバーの属性キー
      変更履歴:
        5.1.9.0 (2010/08/01) 新規作成
      このメソッドは、nullを返しません

    - #### getDriverList

          public java.lang.String[] getDriverList()

      DBドライバーのリスト(配列)を返します。
      戻り値:
        DBドライバーリスト(配列)
      変更履歴:
        5.1.9.0 (2010/08/01) 新規作成, 5.6.7.0 (2013/07/27) driverList を書き込むのではなく、作成します。
      このメソッドは、nullを返しません

    - #### setDriverList

          public void setDriverList​(java.lang.String... drivers)

      DBドライバーのリスト(配列)をセットします。 このメソッドを呼び出すと、DBConfig.xmlで定義されているclass一覧を"一旦削除し"、 その上で、引数のDBドライバー一覧をDBConfig.xmlに書き込みます。 書き込みの直前に、同じフォルダにタイムスタンプを付加したバックアップファイルを作成します。
      パラメータ:
        `drivers` - DBドライバーの配列(可変長引数)
      変更履歴:
        5.1.9.0 (2010/08/01) 新規作成, 5.6.7.0 (2013/07/27) DBドライバーのリストを更新後、初期化します。

    - #### getCodeKeyVal

          public java.lang.String getCodeKeyVal()

      DBID情報のキーとタイトルから、プルダウンメニューを作成するための情報を取得します。 このメソッドを呼び出すと、DBConfig.xmlで定義されている dbidKey と、 title 属性から、 「key1:val1 key2:val2 ・・・」という文字列を作成します。 これを利用すれば、プルダウンメニューが簡単に作成できます。
      戻り値:
        プルダウンメニューを作成するための情報
      変更履歴:
        5.6.7.0 (2013/07/27) プルダウンメニュー用の情報を作成します。, 5.6.7.1 (2013/08/09) 表題(title)属性のスペース対策, 6.2.6.0 (2015/06/19) 表題(title)属性のスペース対策(KEY:LBL をダブルクオートで囲う), 6.3.9.0 (2015/11/06) Use block level rather than method level synchronization.(PMD), 7.1.0.0 (2020/01/20) DB接続できないDBIDはプルダウンメニューに含めない。, 7.2.3.1 (2020/04/17) 超特殊処理：Derby の場合は、ｴﾗｰﾒｯｾｰｼﾞを出さない。