パッケージ org.opengion.fukurou.db
Enum Class DBFunctionName
- すべての実装されたインタフェース:
Serializable
,Comparable<DBFunctionName>
,Constable
各データベースに対応するenum名を返します。
主に、各データベースにおける関数名の差異を吸収するためのenumです。
本来は、互換性のあるファンクション以外、使用しないようにしましょう。
また、無ければ互換性パックなどで、ファンクションを定義してしまうのも
一つの方法です。
※ MySQLでは、通常文字列連結は、CONCAT関数を使います。パイプ(||)で結合するには、
SET sql_mode='PIPES_AS_CONCAT' しておく必要があります。
JDBCで設定する場合は、jdbc:mysql://《サーバー》/《DB名》?sessionVariables=sql_mode='PIPES_AS_CONCAT'
と指定します。
データベース名 | 連結 | 部分文字列 | 日付関数 | DUAL検索 |
---|---|---|---|---|
{@DBF.XXX} | CON | SUBSTR | SYSDATE | FROM_DUAL |
ORACLE | || | SUBSTR | SYSDATE | FROM DUAL |
HSQL | || | SUBSTR | CURRENT_TIMESTAMP | FROM DUAL |
POSTGRES | || | SUBSTR | CURRENT_DATE | |
MYSQL | || | SUBSTR | now() | FROM DUAL |
SQLSERVER | + | SUBSTRING | GETDATE() | |
FIREBIRD | || | SUBSTR | CURRENT_DATE | FROM RDB$DATABASE |
DERBY | || | SUBSTR | CURRENT_TIMESTAMP | FROM SYSIBM.SYSDUMMY1 |
CACHE | || | SUBSTRING | SYSDATE | FROM DUAL |
H2 | || | SUBSTR | SYSDATE | FROM DUAL |
OTHER | || | SUBSTR | SYSDATE | FROM DUAL |
- 変更履歴:
- 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,
-
ネストされたクラスの概要
クラスから継承されたネストされたクラス/インタフェース java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
列挙型定数の概要
列挙定数 -
メソッドの概要
修飾子とタイプメソッド説明static DBFunctionName
各データベースに対応するenum名を返します。getFunctionName
(String func) 共通ファンクションに対応するデータベース個別のファンクション名を返します。static String
getFunctionName
(String func, String dbid) 各データベースに対応するファンクション名を返します。int
getSequence
(String seqName, Transaction tran) シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。int
getSequence
(String seqName, Transaction tran, String DBID) シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。static DBFunctionName
Returns the enum constant of this class with the specified name.static DBFunctionName[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
列挙型定数の詳細
-
ORACLE
ファンクション名 -
HSQL
ファンクション名 -
POSTGRES
ファンクション名 -
MYSQL
ファンクション名 -
SQLSERVER
ファンクション名 -
FIREBIRD
ファンクション名 -
DERBY
ファンクション名 -
CACHE
ファンクション名 -
H2
ファンクション名 -
OTHER
ファンクション名
-
-
メソッドの詳細
-
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
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 nameNullPointerException
- 引数がnullの場合
-
getFunctionName
共通ファンクションに対応するデータベース個別のファンクション名を返します。 現時点では、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
各データベースに対応するファンクション名を返します。- パラメータ:
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
シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。 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
シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。 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
各データベースに対応する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を返しません
-