public abstract class RdbAdapter
extends java.lang.Object
| コンストラクタと説明 |
|---|
RdbAdapter() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
abstract java.lang.String |
addDate(java.lang.String dateExpression,
int day) |
protected void |
addFunction(FunctionAdapter functionAdapter) |
java.lang.String |
aggregateFunctionName(Aggregate agg) |
abstract void |
appendSortSpecExpression(java.lang.StringBuilder sb,
java.lang.CharSequence sortValue,
SortSpec.SortType sortType,
SortSpec.NullOrderingSpec nullOrderingSpec) |
java.lang.CharSequence |
cast(int fromSqlType,
int toSqlType,
java.lang.CharSequence valExpr,
java.lang.Integer lengthOrPrecision,
java.lang.Integer scale) |
java.lang.String[] |
castExp(int sqlType,
java.lang.Integer lengthOrPrecision,
java.lang.Integer scale) |
abstract java.lang.String |
checkStatusQuery() |
abstract java.lang.String[] |
convertTZ(java.lang.String to)
timezoneを変更したtimestampを取得する関数。
|
abstract java.lang.String |
createBinaryViewColumnSql(int colNo,
java.lang.String colName,
java.lang.String lobIdSuffix)
Binary型のビューカラムのSQLを作成します。
|
abstract BulkDeleteContext |
createBulkDeleteContext() |
abstract BulkInsertContext |
createBulkInsertContext() |
abstract BulkUpdateContext |
createBulkUpdateContext() |
abstract java.lang.String |
createLocalTemporaryTable(java.lang.String tableName,
java.lang.String baseTableName,
java.lang.String[] baseColumnName)
ローカルなTemporaryTableを作成する。
|
abstract java.lang.String |
createLongTextViewColumnSql(int colNo,
java.lang.String colName,
java.lang.String lobIdSuffix)
LongText型のビューカラムのSQLを作成します。
|
abstract MultiInsertContext |
createMultiInsertContext(java.sql.Statement stmt) |
java.lang.String |
createRowLockSql(java.lang.String sql)
行ロックのSQLを作成します。
|
abstract java.lang.String |
createViewColumnSql(int colNo,
java.lang.String colName)
ビューカラムのSQLを作成します。
|
abstract java.lang.String |
deleteTemporaryTable(java.lang.String tableName)
TemporaryTableを削除(global temporary tableの場合はデータを削除する)するSQLを生成。
|
abstract java.lang.String |
dual() |
abstract java.lang.String |
escape()
Likeのエスケープ文字指定構文。
|
abstract int |
getBatchSize()
バッチ更新利用する際の推奨バッチサイズ。
|
java.sql.Connection |
getConnection() |
java.sql.Connection |
getConnection(java.lang.String connectionFactoryName) |
protected abstract java.lang.String |
getDataTypeOf(int sqlType,
java.lang.Integer lengthOrPrecision,
java.lang.Integer scale) |
abstract int |
getDefaultFetchSize() |
java.lang.String |
getDefaultOrderByForLimit()
LIMIT句のための省略時のOrderBy句を取得します。
|
abstract int |
getDefaultQueryTimeout() |
abstract int |
getInPartitioningSize() |
abstract int |
getMaxFetchSize() |
int |
getMaxViewNameLength()
ビュー名の最大長を取得します。
|
java.lang.String |
getMultiTableTrickClauseForUpdate()
Multi-Table Trickで利用する句。
|
abstract MultiTableUpdateMethod |
getMultiTableUpdateMethod() |
abstract java.lang.String |
getOptimizerHint() |
abstract java.lang.String[] |
getOptimizerHintBracket() |
abstract HintPlace |
getOptimizerHintPlace() |
<T extends QuerySqlHandler> |
getQuerySqlCreator(java.lang.Class<T> sqlCreatorClass) |
java.lang.String |
getRdbTimeZone() |
BaseRdbTypeAdapter |
getRdbTypeAdapter(java.lang.Object value) |
BaseRdbTypeAdapter |
getRdbTypeAdapter(PropertyType propType) |
abstract java.lang.String[] |
getTableHintBracket() |
abstract java.sql.ResultSet |
getTableNames(java.lang.String tableNamePattern,
java.sql.Connection con) |
java.lang.String |
getTemplaryTablePrefix() |
abstract int |
getThresholdCountOfUsePrepareStatement()
複数の更新(追加)を一括で処理する際の、PrepareStatementを利用するか否かを判断するための閾値。
|
<T extends UpdateSqlHandler> |
getUpdateSqlCreator(java.lang.Class<T> sqlCreatorClass) |
java.lang.String |
getViewSubQueryAlias()
ビューのサブクエリエイリアスを取得します。
|
abstract java.lang.String |
initBlob() |
abstract boolean |
isAlwaysBind()
EQLをSQLに変換する際、常にバインド変数化するか否か。
|
abstract boolean |
isCastFailed(java.sql.SQLException e) |
abstract boolean |
isDeadLock(java.sql.SQLException e) |
abstract boolean |
isDuplicateValueException(java.sql.SQLException e) |
abstract boolean |
isEnableBindHint()
bindヒント句を有効化するか否か
|
abstract boolean |
isEnableInPartitioning() |
abstract boolean |
isLockFailed(java.sql.SQLException e) |
boolean |
isNeedFromClauseTableAliasUpdateStatement()
UPDATE文の表名にエイリアスを使用する場合はFROM句が必要かを判別します。
|
boolean |
isNeedMultiTableTrick()
Multi-Table Trickを利用するか否かを指定。
|
abstract boolean |
isSupportAutoClearTemporaryTableWhenCommit() |
boolean |
isSupportBlobType()
BLOB型をサポートしているかを判別します。
|
abstract boolean |
isSupportGlobalTemporaryTable()
global temporary tableをサポートしている場合はtrue
|
abstract boolean |
isSupportGroupingExtention() |
abstract boolean |
isSupportGroupingExtention(GroupBy.RollType rollType) |
abstract boolean |
isSupportGroupingExtentionWithOrderBy() |
abstract boolean |
isSupportOptimizerHint() |
boolean |
isSupportRowValueConstructor()
行値構成子(行値式)をサポートしているかを判別します。
|
abstract boolean |
isSupportTableHint() |
abstract boolean |
isSupportWindowFunction() |
abstract boolean |
isUseSubQueryForIndexJoin() |
java.util.Calendar |
javaCalendar() |
abstract java.lang.String |
likePattern(java.lang.String str)
EQLのLikeのパターン文字列で、
%、_、\を\でエスケープされているEQLでの文字列を、RDBネイティブなエスケープ構文に変換する。
|
java.util.Calendar |
rdbCalendar() |
java.util.TimeZone |
rdbTimeZone() |
FunctionAdapter |
resolveFunction(java.lang.String name) |
abstract java.lang.String |
rollUpEnd(GroupBy.RollType rollType) |
abstract java.lang.String |
rollUpStart(GroupBy.RollType rollType) |
abstract java.lang.String |
rowLockExpression() |
java.lang.String |
sanitize(java.lang.String str) |
java.lang.String |
sanitizeForLike(java.lang.String str)
SQLのlike文のパターン文字列に設定するエスケープ処理。
|
abstract java.lang.String |
seqNextSelectSql(java.lang.String sequenceName,
int tenantId,
java.lang.String entityDefId) |
void |
setParameter(java.sql.PreparedStatement ps,
int index,
java.lang.Object rdbValue) |
void |
setRdbTimeZone(java.lang.String rdbTimeZone) |
abstract java.lang.String |
systimestamp() |
abstract java.lang.String |
tableAlias(java.lang.String selectSql) |
abstract java.lang.String |
toCreateViewDDL(java.lang.String viewName,
java.lang.String selectSql,
boolean withDropView)
指定のSELECT文をビュー作成DDLにします。
|
abstract java.lang.String |
toDateExpression(java.sql.Date date) |
java.lang.String |
toLimitSql(java.lang.String selectSql,
int limitCount,
int offset) |
abstract java.lang.String |
toLimitSql(java.lang.String selectSql,
int limitCount,
int offset,
boolean asBind) |
abstract java.lang.Object[] |
toLimitSqlBindValue(int limitCount,
int offset) |
java.lang.String |
toSqlExp(java.lang.Object rdbValue) |
abstract java.lang.String |
toTimeExpression(java.sql.Time time) |
abstract java.lang.String |
toTimeStampExpression(java.sql.Timestamp date) |
java.lang.String |
upperFunctionName() |
java.lang.String |
windowRankFunctionName(WindowRankFunction rankFunc) |
protected void addFunction(FunctionAdapter functionAdapter)
public <T extends UpdateSqlHandler> T getUpdateSqlCreator(java.lang.Class<T> sqlCreatorClass)
public <T extends QuerySqlHandler> T getQuerySqlCreator(java.lang.Class<T> sqlCreatorClass)
public java.lang.String[] castExp(int sqlType,
java.lang.Integer lengthOrPrecision,
java.lang.Integer scale)
public java.lang.CharSequence cast(int fromSqlType,
int toSqlType,
java.lang.CharSequence valExpr,
java.lang.Integer lengthOrPrecision,
java.lang.Integer scale)
public abstract boolean isSupportOptimizerHint()
public abstract java.lang.String getOptimizerHint()
public abstract HintPlace getOptimizerHintPlace()
public abstract java.lang.String[] getOptimizerHintBracket()
public abstract boolean isSupportTableHint()
public abstract java.lang.String[] getTableHintBracket()
protected abstract java.lang.String getDataTypeOf(int sqlType,
java.lang.Integer lengthOrPrecision,
java.lang.Integer scale)
public BaseRdbTypeAdapter getRdbTypeAdapter(java.lang.Object value)
public BaseRdbTypeAdapter getRdbTypeAdapter(PropertyType propType)
public java.lang.String toSqlExp(java.lang.Object rdbValue)
public void setParameter(java.sql.PreparedStatement ps,
int index,
java.lang.Object rdbValue)
throws java.sql.SQLException
java.sql.SQLExceptionpublic abstract java.lang.String toDateExpression(java.sql.Date date)
public abstract java.lang.String toTimeExpression(java.sql.Time time)
public abstract java.lang.String toTimeStampExpression(java.sql.Timestamp date)
public java.lang.String sanitize(java.lang.String str)
public final FunctionAdapter resolveFunction(java.lang.String name)
public abstract java.lang.String systimestamp()
public abstract MultiInsertContext createMultiInsertContext(java.sql.Statement stmt)
public abstract BulkInsertContext createBulkInsertContext()
public abstract BulkUpdateContext createBulkUpdateContext()
public abstract BulkDeleteContext createBulkDeleteContext()
public final java.sql.Connection getConnection()
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.sql.Connection getConnection(java.lang.String connectionFactoryName)
throws java.sql.SQLException
java.sql.SQLExceptionpublic abstract java.lang.String seqNextSelectSql(java.lang.String sequenceName,
int tenantId,
java.lang.String entityDefId)
public abstract boolean isUseSubQueryForIndexJoin()
public abstract java.lang.String dual()
public abstract java.lang.String rowLockExpression()
public java.lang.String toLimitSql(java.lang.String selectSql,
int limitCount,
int offset)
public abstract java.lang.String toLimitSql(java.lang.String selectSql,
int limitCount,
int offset,
boolean asBind)
public abstract java.lang.Object[] toLimitSqlBindValue(int limitCount,
int offset)
public abstract boolean isDuplicateValueException(java.sql.SQLException e)
public abstract boolean isDeadLock(java.sql.SQLException e)
public abstract boolean isLockFailed(java.sql.SQLException e)
public abstract boolean isCastFailed(java.sql.SQLException e)
public abstract java.lang.String addDate(java.lang.String dateExpression,
int day)
public abstract java.lang.String checkStatusQuery()
public final java.lang.String sanitizeForLike(java.lang.String str)
str - public abstract java.lang.String likePattern(java.lang.String str)
str - public abstract java.lang.String escape()
public abstract java.lang.String tableAlias(java.lang.String selectSql)
public abstract boolean isSupportGroupingExtention(GroupBy.RollType rollType)
public abstract boolean isSupportGroupingExtention()
public abstract boolean isSupportGroupingExtentionWithOrderBy()
public abstract java.lang.String rollUpStart(GroupBy.RollType rollType)
public abstract java.lang.String rollUpEnd(GroupBy.RollType rollType)
public abstract void appendSortSpecExpression(java.lang.StringBuilder sb,
java.lang.CharSequence sortValue,
SortSpec.SortType sortType,
SortSpec.NullOrderingSpec nullOrderingSpec)
public java.lang.String getRdbTimeZone()
public void setRdbTimeZone(java.lang.String rdbTimeZone)
public java.util.TimeZone rdbTimeZone()
public java.util.Calendar rdbCalendar()
public java.util.Calendar javaCalendar()
public abstract java.lang.String[] convertTZ(java.lang.String to)
to - public java.lang.String upperFunctionName()
public abstract java.lang.String initBlob()
public abstract boolean isEnableInPartitioning()
public abstract int getInPartitioningSize()
public abstract boolean isSupportGlobalTemporaryTable()
public abstract boolean isSupportAutoClearTemporaryTableWhenCommit()
public abstract java.lang.String createLocalTemporaryTable(java.lang.String tableName,
java.lang.String baseTableName,
java.lang.String[] baseColumnName)
public abstract java.lang.String deleteTemporaryTable(java.lang.String tableName)
tableName - public abstract boolean isEnableBindHint()
public abstract boolean isAlwaysBind()
public abstract int getBatchSize()
public abstract int getMaxFetchSize()
public abstract int getDefaultQueryTimeout()
public abstract int getDefaultFetchSize()
public abstract int getThresholdCountOfUsePrepareStatement()
public java.lang.String aggregateFunctionName(Aggregate agg)
public abstract boolean isSupportWindowFunction()
public java.lang.String windowRankFunctionName(WindowRankFunction rankFunc)
public abstract MultiTableUpdateMethod getMultiTableUpdateMethod()
public abstract java.sql.ResultSet getTableNames(java.lang.String tableNamePattern,
java.sql.Connection con)
throws java.sql.SQLException
java.sql.SQLExceptionpublic java.lang.String getTemplaryTablePrefix()
public java.lang.String createRowLockSql(java.lang.String sql)
DMLの判別はしていません。SELECT文に対してのみ使用してください。
sql - 行ロックのSQLを作成するSQL。public boolean isSupportRowValueConstructor()
trueを返します。public boolean isNeedFromClauseTableAliasUpdateStatement()
trueを返します。public boolean isSupportBlobType()
trueを返します。public java.lang.String getDefaultOrderByForLimit()
public java.lang.String getViewSubQueryAlias()
public int getMaxViewNameLength()
public abstract java.lang.String createViewColumnSql(int colNo,
java.lang.String colName)
colNo - カラム番号colName - カラム名public abstract java.lang.String createBinaryViewColumnSql(int colNo,
java.lang.String colName,
java.lang.String lobIdSuffix)
colNum - カラム番号colName - カラム名lobIdSuffix - ロブIDカラム接尾辞public abstract java.lang.String createLongTextViewColumnSql(int colNo,
java.lang.String colName,
java.lang.String lobIdSuffix)
colNum - カラム番号colName - カラム名lobIdSuffix - LobIDカラム接尾辞public abstract java.lang.String toCreateViewDDL(java.lang.String viewName,
java.lang.String selectSql,
boolean withDropView)
viewName - ビュー名selectSql - SELECT文withDropView - ビュー削除も含めるpublic boolean isNeedMultiTableTrick()
public java.lang.String getMultiTableTrickClauseForUpdate()