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

列挙型 DBFunctionName

  • すべての実装されたインタフェース:
    java.io.Serializable, java.lang.Comparable<DBFunctionName>

    public enum DBFunctionName
    extends java.lang.Enum<DBFunctionName>
    各データベースに対応する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
    H2 || SUBSTR 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メソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      static DBFunctionName getDBName​(java.lang.String dbName)
      各データベースに対応するenum名を返します。
      java.lang.String getFunctionName​(java.lang.String func)
      共通ファンクションに対応するデータベース個別のファンクション名を返します。
      static java.lang.String getFunctionName​(java.lang.String func, java.lang.String dbid)
      各データベースに対応するファンクション名を返します。
      int getSequence​(java.lang.String seqName, Transaction tran)
      シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。
      int getSequence​(java.lang.String seqName, Transaction tran, java.lang.String DBID)
      シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。
      static DBFunctionName valueOf​(java.lang.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
    • メソッドの詳細

      • values

        public static DBFunctionName[] values()
        この列挙型の定数を含む配列を宣言されている順序で返します。 このメソッドは次のようにして定数を反復するために 使用できます:
        for (DBFunctionName c : DBFunctionName.values())
            System.out.println(c);
        
        戻り値:
        この列挙型の定数を含む、宣言されている順序での配列
      • valueOf

        public static DBFunctionName valueOf​(java.lang.String name)
        指定した名前を持つこの型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と正確に 一致している必要があります。(余分な空白文字を含めることは できません。)
        パラメータ:
        name - 返される列挙型定数の名前。
        戻り値:
        指定した名前の列挙型定数
        例外:
        java.lang.IllegalArgumentException - この列挙型に、指定した名前の定数がない場合
        java.lang.NullPointerException - 引数がnullの場合
      • getFunctionName

        public java.lang.String getFunctionName​(java.lang.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) メソッドの出口は、最後の1か所にすべきです(PMD)。, 5.9.19.1 (2017/04/14) DBF.TYPE追加
      • getFunctionName

        public static java.lang.String getFunctionName​(java.lang.String func,
                                                       java.lang.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​(java.lang.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追加, 5.9.31.1 (2018/04/13) DBID追加対応
      • getSequence

        public int getSequence​(java.lang.String seqName,
                               Transaction tran,
                               java.lang.String DBID)
        シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。 DBに対するシーケンスオブジェクトは予め作成されている必要があります。 また、MySQLの場合は、シーケンスオブジェクトが実装されていないため、 内部的には、引数のシーケンス名と同じ名前のテーブルから、Integer型の "SEQID"という項目名を検索することにより、シーケンスをエミュレートしています。
        パラメータ:
        seqName - シーケンス名
        tran - トランザクション
        DBID - DBID
        戻り値:
        シーケンス番号
        変更履歴:
        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) の追加, 5.9.31.1 (2018/04/13) DBID追加対応, 6.9.8.0 (2018/05/28) DBID 対応漏れ,arg引数がないことを明確にするため、nullを渡します。
      • getDBName

        public static DBFunctionName getDBName​(java.lang.String dbName)
        各データベースに対応するenum名を返します。
        パラメータ:
        dbName - データベース名(null不可)
        戻り値:
        データベースに対応するenum名
        変更履歴:
        5.1.4.0 (2010/03/01) 新規作成, 5.8.5.0 (2015/03/06) CACHE追加, 6.3.9.1 (2015/11/27) メソッドの出口は、最後の1か所にすべきです(PMD)。, 6.4.5.0 (2016/04/08) 規定以外のデータベースでも、動作するように、OTHER を用意する。, 6.4.9.3 (2016/08/26) JavaDB(APACHE DERBY) の追加, 6.8.3.0 (2017/11/27) H2 の追加
        このメソッドは、nullを返しません