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

Enum Class DBFunctionName

java.lang.Object
java.lang.Enum<DBFunctionName>
org.opengion.fukurou.db.DBFunctionName
すべての実装されたインタフェース:
Serializable, Comparable<DBFunctionName>, Constable

public enum DBFunctionName extends Enum<DBFunctionName>
各データベースに対応するenum名を返します。 主に、各データベースにおける関数名の差異を吸収するためのenumです。 本来は、互換性のあるファンクション以外、使用しないようにしましょう。 また、無ければ互換性パックなどで、ファンクションを定義してしまうのも 一つの方法です。
各データベースにおける関数
データベース名 連結部分文字列日付関数 DUAL検索
{@DBF.XXX}CON SUBSTR SYSDATE FROM_DUAL
ORACLE || SUBSTR SYSDATE FROM DUAL
HSQL || SUBSTR CURRENT_TIMESTAMPFROM DUAL
POSTGRES || SUBSTR CURRENT_DATE
MYSQL || SUBSTR now() FROM DUAL
SQLSERVER + SUBSTRING GETDATE()
FIREBIRD || SUBSTR CURRENT_DATE FROM RDB$DATABASE
DERBY || SUBSTR CURRENT_TIMESTAMPFROM SYSIBM.SYSDUMMY1
CACHE || SUBSTRING SYSDATE FROM DUAL
H2 || SUBSTR SYSDATE FROM DUAL
OTHER || SUBSTR SYSDATE FROM DUAL
※ 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追加, 8.0.1.1 (2021/11/12) FROM DUAL 項目追加
導入されたバージョン:
JDK5.0,
  • 列挙型定数の詳細

  • メソッドの詳細

    • values

      public static DBFunctionName[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      戻り値:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static DBFunctionName valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      パラメータ:
      name - 返される列挙型定数の名前。
      戻り値:
      指定した名前の列挙型定数
      例外:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - 引数がnullの場合
    • 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) メソッドの出口は、最後の1か所にすべきです(PMD)。, 5.9.19.1 (2017/04/14) DBF.TYPE追加, 8.0.1.1 (2021/11/12) FROM DUAL 項目追加
    • 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追加, 5.9.31.1 (2018/04/13) DBID追加対応
    • getSequence

      public int getSequence(String seqName, Transaction tran, 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(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を返しません