パッケージ org.opengion.fukurou.db
列挙型 DBFunctionName
- java.lang.Object
-
- java.lang.Enum<DBFunctionName>
-
- org.opengion.fukurou.db.DBFunctionName
-
- すべての実装されたインタフェース:
Serializable,Comparable<DBFunctionName>
public enum DBFunctionName extends Enum<DBFunctionName>
各データベースに対応するenum名を返します。 主に、各データベースにおける関数名の差異を吸収するためのenumです。 本来は、互換性のあるファンクション以外、使用しないようにしましょう。 また、無ければ互換性パックなどで、ファンクションを定義してしまうのも 一つの方法です。
※ MySQLでは、通常文字列連結は、CONCAT関数を使います。パイプ(||)で結合するには、 SET sql_mode='PIPES_AS_CONCAT' しておく必要があります。 JDBCで設定する場合は、jdbc:mysql://《サーバー》/《DB名》?sessionVariables=sql_mode='PIPES_AS_CONCAT' と指定します。各データベースにおける関数 データベース名 連結 部分文字列 日付関数 {@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 - 変更履歴:
- 5.1.4.0 (2010/03/01) 新規作成, 5.8.5.0 (2015/03/06) CACHE追加
- バージョン
- 5.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
-
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 static DBFunctionNamegetDBName(String dbName)各データベースに対応するenum名を返します。StringgetFunctionName(String func)共通ファンクションに対応するデータベース個別のファンクション名を返します。static StringgetFunctionName(String func, String dbid)各データベースに対応するファンクション名を返します。intgetSequence(String seqName, Transaction tran)シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。intgetSequence(String seqName, Transaction tran, String DBID)シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。static DBFunctionNamevalueOf(String name)指定した名前を持つこの型の列挙型定数を返します。static DBFunctionName[]values()この列挙型の定数を含む配列を宣言されている順序で返します。
-
-
-
列挙型定数の詳細
-
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
ファンクション名
-
H2
public static final DBFunctionName H2
ファンクション名
-
OTHER
public static final DBFunctionName OTHER
ファンクション名
-
-
メソッドの詳細
-
values
public static DBFunctionName[] values()
この列挙型の定数を含む配列を宣言されている順序で返します。 このメソッドは次のようにして定数を反復するために 使用できます:for (DBFunctionName c : DBFunctionName.values()) System.out.println(c);
- 戻り値:
- この列挙型の定数を含む、宣言されている順序での配列
-
valueOf
public static DBFunctionName valueOf(String name)
指定した名前を持つこの型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と正確に 一致している必要があります。(余分な空白文字を含めることは できません。)- パラメータ:
name- 返される列挙型定数の名前。- 戻り値:
- 指定した名前の列挙型定数
- 例外:
IllegalArgumentException- この列挙型に、指定した名前の定数がない場合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追加
-
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を返しません
-
-