org.opengion.fukurou.db

## クラス DBFunctionName

- java.lang.Object
- - java.lang.Enum
  - - org.opengion.fukurou.db.DBFunctionName

- すべての実装されたインタフェース:
    Serializable, Comparable

      public final class DBFunctionName
      extends Enum

       各データベースに対応するenum名を返します。
       主に、各データベースにおける関数名の差異を吸収するためのenumです。
       本来は、互換性のあるファンクション以外、使用しないようにしましょう。
       また、無ければ互換性パックなどで、ファンクションを定義してしまうのも
       一つの方法です。

        各データベースにおける関数
        データベース名 連結部分文字列日付関数
        {@DBF.XXX}CON SUBSTR    SYSDATE
        ORACLE         ||  SUBSTR    SYSDATE
        HSQL           ||  SUBSTR    CURRENT_TIMESTAMP
        POSTGRES       ||  SUBSTR    CURRENT_DATE
        MYSQL          ||  SUBSTR    now()
        SQLSERVER      +   SUBSTRING GETDATE()
        FIREBIRD       ||  SUBSTR    CURRENT_DATE
        DERBY          ||  SUBSTR    CURRENT_TIMESTAMP
        CACHE          ||  SUBSTRING SYSDATE
        OTHER          ||  SUBSTR    SYSDATE

       ※ MySQLでは、通常文字列連結は、CONCAT関数を使います。パイプ(||)で結合するには、
       SET sql_mode='PIPES_AS_CONCAT' しておく必要があります。
       JDBCで設定する場合は、jdbc:mysql://《サーバー》/《DB名》?sessionVariables=sql_mode='PIPES_AS_CONCAT'
       と指定します。

  関連項目:
    直列化された形式
  変更履歴:

    5.1.4.0 (2010/03/01) 新規作成
    5.8.5.0 (2015/03/06) CACHE追加

  バージョン
    5.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static DBFunctionName` | `CACHE`
    `static DBFunctionName` | `DERBY`
    `static DBFunctionName` | `FIREBIRD`
    `static DBFunctionName` | `HSQL`
    `static DBFunctionName` | `MYSQL`
    `static DBFunctionName` | `ORACLE`
    `static DBFunctionName` | `OTHER`
    `static DBFunctionName` | `POSTGRES`
    `static DBFunctionName` | `SQLSERVER`

  - ### メソッドのサマリー

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `static DBFunctionName` | `getDBName(String dbName)` 各データベースに対応するenum名を返します。
    `String` | `getFunctionName(String func)` 共通ファンクションに対応するデータベース個別のファンクション名を返します。
    `static String` | `getFunctionName(String func, String dbid)` 各データベースに対応するファンクション名を返します。
    `int` | `getSequence(String seqName, Transaction tran)` シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。
    `static DBFunctionName` | `valueOf(String name)`
    `static DBFunctionName[]` | `values()`

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

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

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

    - #### ORACLE

          public static final DBFunctionName ORACLE

    - #### HSQL

          public static final DBFunctionName HSQL

    - #### POSTGRES

          public static final DBFunctionName POSTGRES

    - #### MYSQL

          public static final DBFunctionName MYSQL

    - #### SQLSERVER

          public static final DBFunctionName SQLSERVER

    - #### FIREBIRD

          public static final DBFunctionName FIREBIRD

    - #### DERBY

          public static final DBFunctionName DERBY

    - #### CACHE

          public static final DBFunctionName CACHE

    - #### OTHER

          public static final DBFunctionName OTHER

  - ### メソッドの詳細

    - #### values

          public static DBFunctionName[] values()

    - #### valueOf

          public static DBFunctionName valueOf(String name)

    - #### getFunctionName

          public String getFunctionName(String func)

      共通ファンクションに対応するデータベース個別のファンクション名を返します。 現時点では、NAME,CON,SUBSTR のみ使用できます。
      パラメータ:
        `func` - 共通ファンクション
      戻り値:
        ファンクション名
      変更履歴:

        5.1.4.0 (2010/03/01) 新規作成
        6.2.2.1 (2015/03/31) SYSDATE 項目追加
        6.3.9.1 (2015/11/27) メソッドの出口は、最後の１か所にすべきです(PMD)。

    - #### getFunctionName

          public static String getFunctionName(String func,
                                               String dbid)

      各データベースに対応するファンクション名を返します。
      パラメータ:
        `func` - ファンクション名(定義文字)
        `dbid` - 接続先ID
      戻り値:
        実ファンクション名
      変更履歴:

        4.3.8.0 (2009/08/01) SUBSTRを追加
        5.1.2.0 (2010/01/01) MySQL対応,SUBSTRB廃止(帳票データの分割の内部処理化に伴う)
        5.1.4.0 (2010/03/01) データベース名 ではなく、dbid で判断するように変更
        5.7.7.2 (2014/06/20) DBF.NAME 時の処理の簡素化
        6.2.1.0 (2015/03/13) NAME だけ特殊処理するのではなく、統一する。

    - #### getSequence

          public int getSequence(String seqName,
                                 Transaction tran)

      シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。 DBに対するシーケンスオブジェクトは予め作成されている必要があります。 また、MySQLの場合は、シーケンスオブジェクトが実装されていないため、 内部的には、引数のシーケンス名と同じ名前のテーブルから、Integer型の "SEQID"という項目名を検索することにより、シーケンスをエミュレートしています。
      パラメータ:
        `seqName` - シーケンス名
        `tran` - トランザクション
      戻り値:
        シーケンス番号
      変更履歴:

        5.1.9.0 (2010/08/01) 新規追加
        5.8.5.0 (2015/03/06) CACHE追加
        6.4.9.3 (2016/08/26) JavaDB(APACHE DERBY) の追加

    - #### getDBName

          public static DBFunctionName getDBName(String dbName)

      各データベースに対応するenum名を返します。
      パラメータ:
        `dbName` - データベース名
      戻り値:
        データベースに対応するenum名
      変更履歴:

        5.1.4.0 (2010/03/01) 新規作成
        5.8.5.0 (2015/03/06) CACHE追加
        6.3.9.1 (2015/11/27) メソッドの出口は、最後の１か所にすべきです(PMD)。
        6.4.5.0 (2016/04/08) 規定以外のデータベースでも、動作するように、OTHER を用意する。
        6.4.9.3 (2016/08/26) JavaDB(APACHE DERBY) の追加

      このメソッドは、nullを返しません

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.