クラス DialectBase
- java.lang.Object
-
- com.github.mygreen.sqlmapper.core.dialect.DialectBase
-
- すべての実装されたインタフェース:
Dialect
- 直系の既知のサブクラス:
H2Dialect,HsqlDialect,OracleDialect,PostgresDialect,SqliteDialect,StandardDialect
public abstract class DialectBase extends Object implements Dialect
Dialectのベースとなるクラス。 多くのDBに共通する設定はこのクラスで実装し、異なる部分を継承先で実装します。- 作成者:
- T.TSUCHIE
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 protected Map<Class<?>,OperationHandler<? extends Operator>>operationHandlerMapメタモデルによる各演算子の処理のマップ。
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 DialectBase()
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 StringconvertGetCountSql(String sql)件数取得用のSQLに変換します。StringconvertLimitSql(String sql, int offset, int limit)LIMIT句用SQLに変換します。StringgetCountSql()件数取得用のSQLのSELECT句を取得します。GeneratedValue.GenerationTypegetDefaultGenerationType()GeneratedValue.GenerationType.AUTOが指定された場合の、 デフォルトのGeneratedValue.GenerationTypeを返します。StringgetForUpdateSql(SelectForUpdateType type, int waitSeconds)SELECT文に付加するFOR UPDATE NOWAIT相当のSQLを返します。StringgetHintComment(String hint)ヒントコメントを返します。Map<Class<?>,OperationHandler<? extends Operator>>getOperationHandlerMap()メタモデルによる各演算子の処理のマップ。ValueType<?>getValueType(ValueType<?> valueType)対応するクラスタイプに対する値タイプを返します。booleanneedsParameterForResultSet()プロシージャの呼び出しでResultSetに対してパラメータが必要かどうかを判定します。<T extends Operator>
voidregister(Class<T> operatorClass, OperationHandler<T> handler)メタモデルに対する演算子に対する処理を登録します。booleansupportsSelectForUpdate(SelectForUpdateType type)SELECT文でFOR UPDATEをサポートしていればtrueを返します。-
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
インタフェースから継承されたメソッド com.github.mygreen.sqlmapper.core.dialect.Dialect
getName, getSequenceIncrementer, supportsGenerationType
-
-
-
-
フィールドの詳細
-
operationHandlerMap
protected Map<Class<?>,OperationHandler<? extends Operator>> operationHandlerMap
メタモデルによる各演算子の処理のマップ。
-
-
メソッドの詳細
-
getDefaultGenerationType
public GeneratedValue.GenerationType getDefaultGenerationType()
GeneratedValue.GenerationType.AUTOが指定された場合の、 デフォルトのGeneratedValue.GenerationTypeを返します。- 定義:
getDefaultGenerationTypeインタフェース内Dialect- 戻り値:
GeneratedValue.GenerationType.TABLEを返します。
-
getValueType
public ValueType<?> getValueType(@Nullable ValueType<?> valueType)
インタフェースからコピーされた説明:Dialect対応するクラスタイプに対する値タイプを返します。 Oracleなどのようにbooleanが存在しない場合は対応するValueTypeに切り替えたりします。- 定義:
getValueTypeインタフェース内Dialect- パラメータ:
valueType- 値タイプ- 戻り値:
- 値タイプ
-
getCountSql
public String getCountSql()
件数取得用のSQLのSELECT句を取得します。- 定義:
getCountSqlインタフェース内Dialect- 戻り値:
- "count(*)" を返します。
-
convertGetCountSql
public String convertGetCountSql(String sql)
件数取得用のSQLに変換します。- 定義:
convertGetCountSqlインタフェース内Dialect- パラメータ:
sql- SQL- 戻り値:
- "select count(*) from (<sql>)" を返します。
-
getHintComment
public String getHintComment(String hint)
ヒントコメントを返します。ヒント句をサポートしていないDBの場合は空文字を返します。
- 定義:
getHintCommentインタフェース内Dialect- パラメータ:
hint- ヒント- 戻り値:
- 空文字("")を返します。
-
supportsSelectForUpdate
public boolean supportsSelectForUpdate(SelectForUpdateType type)
SELECT文でFOR UPDATEをサポートしていればtrueを返します。- 定義:
supportsSelectForUpdateインタフェース内Dialect- パラメータ:
type- SELECT ~ FOR UPDATEのタイプ- 戻り値:
SelectForUpdateType.NORMALを返します。
-
getForUpdateSql
public String getForUpdateSql(SelectForUpdateType type, int waitSeconds)
SELECT文に付加するFOR UPDATE NOWAIT相当のSQLを返します。- 定義:
getForUpdateSqlインタフェース内Dialect- パラメータ:
type- SELECT ~ FOR UPDATEのタイプwaitSeconds-typeにSelectForUpdateType.WAITが指定された場合の待機時間(秒単位)- 戻り値:
- "for update" を返します。
-
convertLimitSql
public String convertLimitSql(String sql, int offset, int limit)
LIMIT句用SQLに変換します。- 定義:
convertLimitSqlインタフェース内Dialect- パラメータ:
sql- SQLoffset- オフセット。省略する場合は -1を指定します。limit- リミット。省略する場合は -1 を指定します。- 戻り値:
- LIMIT句用SQL。
-
needsParameterForResultSet
public boolean needsParameterForResultSet()
プロシージャの呼び出しでResultSetに対してパラメータが必要かどうかを判定します。- 定義:
needsParameterForResultSetインタフェース内Dialect- 戻り値:
- false を返します。
-
register
public <T extends Operator> void register(Class<T> operatorClass, OperationHandler<T> handler)
メタモデルに対する演算子に対する処理を登録します。登録する際に、OperationHandler#init()を実行します。
- 型パラメータ:
T- 演算子の種別- パラメータ:
operatorClass- 演算子種別のクラスhandler- 演算子に対する処理- 導入されたバージョン:
- 0.3
-
getOperationHandlerMap
public Map<Class<?>,OperationHandler<? extends Operator>> getOperationHandlerMap()
メタモデルによる各演算子の処理のマップ。- 定義:
getOperationHandlerMapインタフェース内Dialect- 戻り値:
- メタモデルの条件式を評価する処理のマップ
-
-