パッケージ org.opengion.fukurou.db
列挙クラス 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
このクラスの列挙型定数を指定した名前で返します。static DBFunctionName[]
values()
この列挙クラスの定数を含む配列を宣言されている順序で 返します。
-
列挙型定数の詳細
-
ORACLE
ファンクション名 -
HSQL
ファンクション名 -
POSTGRES
ファンクション名 -
MYSQL
ファンクション名 -
SQLSERVER
ファンクション名 -
FIREBIRD
ファンクション名 -
DERBY
ファンクション名 -
CACHE
ファンクション名 -
H2
ファンクション名 -
OTHER
ファンクション名
-
-
メソッドの詳細
-
values
この列挙クラスの定数を含む配列を宣言されている順序で 返します。- 戻り値:
- この列挙クラスの定数を宣言されている順序で含む配列
-
valueOf
このクラスの列挙型定数を指定した名前で返します。 文字列は、このクラスの列挙型定数の宣言に使用された識別子と正確に 一致する必要があります。(余分な空白文字は使用 できません。)- パラメータ:
name
- 返される列挙型定数の名前。- 戻り値:
- 指定した名前の列挙型定数
- 例外:
IllegalArgumentException
- この列挙クラスに、指定した名前の定数がない場合NullPointerException
- 引数が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
- データベースID- 戻り値:
- シーケンス番号
- 変更履歴:
- 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を渡します。, 8.5.4.2 (2024/01/12) PMD 7.0.0 FormalParameterNamingConventions 対応, 8.5.5.1 (2024/02/29) switch式の使用
-
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を返しません
-