public interface Dialect
限定符和类型 | 字段和说明 |
---|---|
static int |
DISABLE_FOREIGN_KEY_CHECKS |
static int |
ENABLE_FOREIGN_KEY_CHECKS |
限定符和类型 | 方法和说明 |
---|---|
java.lang.String |
buildForeignKeyString(java.lang.String constraintName,
java.lang.String[] foreignKey,
java.lang.String referencedTable,
java.lang.String[] primaryKey,
boolean referencesPrimaryKey)
返回建立外键的语句
|
SQLTypeHandlerFactory |
buildSQLTypeHandlerFactory()
SQL生成工厂
|
java.lang.String |
cascadeDeletePosition(boolean delCascade,
boolean isSupportsCascadeDelete,
java.lang.StringBuffer buf)
数据库联动删除关键字的位置
|
java.lang.String |
column2SQL(java.lang.String columnName)
将列名转化为特定数据库下的名字
|
java.lang.String |
column2SQL4WhereSQL(java.lang.String string,
int type)
生成where条件时将列名转化为特定数据库下的名字
|
java.lang.StringBuffer |
columnInit(java.lang.StringBuffer columnSQL,
Column column)
数据库字段初始化是否可以允许有默认NULL
|
java.lang.String |
columnType2SQL(int columnType,
java.lang.String columnSize)
将列类型转化成特定数据库的的列类型
|
java.sql.ResultSet |
createLimitResultSet(Connection database,
java.sql.Connection conn,
java.sql.Statement stmt,
java.lang.String[] fieldNames,
java.lang.String schema,
java.lang.String tableName,
java.lang.String dbLink,
long startRow)
创建指定行到指定行的游标
FIXME Sqlserver 等 endRow 是没有效果的
|
java.lang.String |
createLimitSQL(java.lang.String sql,
java.lang.String[] fieldNames,
long startRow)
创建指定行的SQL
|
java.sql.Statement |
createLimitUseStatement(java.sql.Connection conn)
写在这里是为了可以在下面方法执行完毕之后释放
|
java.lang.String |
createSequence(java.sql.Connection conn,
java.lang.String tableName,
java.lang.String columnName,
java.lang.String columnType)
根据指定的数据库连接、表、列名以及列类型生成自增长SQL
|
java.lang.String |
createSQL4Columns(java.lang.String query) |
java.sql.Statement |
createStatement(java.sql.Connection connection,
java.lang.String sql)
创建数据库声明
|
void |
createTriggerForSequenceParameter(java.sql.Connection cn,
java.lang.String tableName,
java.lang.String columnName)
为自增长数据库创建trigger
|
java.lang.String |
defaultValidationQuery(java.sql.Connection conn)
错误时候默认的查询语句
|
<R> R |
execute(DialectResultKey<DialectEmptyParameter,R> key)
无参数无异常有返回的方法
|
<E extends DialectParameter,R> |
execute(DialectResultKey<E,R> key,
E parameter)
无异常有返回的方法
|
<R,ET extends java.lang.Throwable> |
execute(DialectResultWithExceptionKey<DialectEmptyParameter,R,ET> key)
无参数有异常有返回的方法
|
<E extends DialectParameter,R,ET extends java.lang.Throwable> |
execute(DialectResultWithExceptionKey<E,R,ET> key,
E parameter)
有异常有返回的方法
|
void |
execute(DialectVoidKey<DialectEmptyParameter> key)
无参数无异常无返回的方法
|
<E extends DialectParameter> |
execute(DialectVoidKey<E> key,
E parameter)
无异常无返回的方法
|
<T extends java.lang.Throwable> |
execute(DialectVoidWithExceptionKey<DialectEmptyParameter,T> key)
无参数有异常无返回的方法
|
<E extends DialectParameter,T extends java.lang.Throwable> |
execute(DialectVoidWithExceptionKey<E,T> key,
E parameter)
有异常无返回的方法
|
java.sql.ResultSet |
executeQuery(java.sql.Statement statement,
java.lang.String sql,
java.sql.Connection connection)
执行sql语句
|
TableProcedure[] |
getAllTableProcedure(Connection database,
java.lang.String type)
获取所有表信息
|
ColumnInformation[] |
getColumnInformation(java.sql.Connection connection,
java.sql.ResultSet rs,
java.lang.String sql,
java.lang.String oriCharsetName,
java.lang.String newCharsetName)
获取列信息
|
java.lang.String |
getCountSql(java.lang.String sql)
查询数据条数的SQL
|
int |
getFetchSize()
批处理时一次处理的数目,处理该数目的数据时性能最优
|
java.lang.String |
getIdentitySelectString(java.lang.String table,
java.lang.String column,
int type)
获取一个select语句用于检索最后为某个特殊的表生成的标记
|
java.lang.String |
getLimitString(java.lang.String query,
int offset,
int limit)
生成限制查询的SQL
|
TableProcedure[] |
getProcedureList(java.sql.Connection connection,
java.lang.String catalog,
java.lang.String schema,
boolean isOracleSysSpace)
根据指定的数据库连接和模式获取存储过程表
|
java.lang.String |
getRowRangeSql(java.lang.String sql,
int start,
int end,
java.lang.String[] cols)
获取从start行到row行的数据
|
java.lang.String[] |
getSchemas(java.sql.Connection conn)
通过数据库连接获取数据库的模式
|
java.lang.String |
getSpecificRowSql(java.lang.String sql,
int row)
获取第row行的数据
|
StoreProcedureParameter[] |
getStoreProcedureDeclarationParameters(java.sql.Connection conn,
java.lang.String name,
java.lang.String parameterDefaultValue)
获取存储过程的参数信息
|
java.lang.String |
getStoreProcedureText(java.sql.Connection conn,
java.lang.String name,
java.lang.String charSetName)
存储过程的内容
|
java.lang.String |
getTableCommentName(java.sql.Connection conn,
java.lang.String tableName,
java.lang.String schema,
java.lang.String dbLink)
获取表的注释内容
|
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getTableFieldsInfor(java.sql.Connection conn,
java.lang.String tableName,
java.lang.String schema,
java.lang.String dbLink) |
java.util.List<FieldMessage> |
getTableFieldsMessage(java.sql.Connection conn,
java.lang.String tableName,
java.lang.String schema,
java.lang.String dbLink)
获取表字段信息
|
TableProcedure[] |
getTableProcedure(Connection database,
java.sql.Connection connection,
java.lang.String schema,
boolean b)
根据指定的数据库连接和模式获取数据库表
|
TableProcedure[] |
getTableProcedure(java.sql.Connection connection,
java.lang.String schema,
boolean b)
根据指定的数据库连接和模式获取数据库表
|
java.lang.String |
getTopNRowSql(int rowCount,
Table table)
返回最前面rowCount行的数据
|
void |
initTables(JDBCDataAccessObjectOperator manager,
java.sql.Connection cn,
ObjectMappingTable[] tableObj)
初始化数据表
|
boolean |
isNULL(java.lang.Object object)
判断字段值是否为空
|
boolean |
isSupportFetchText()
是否支持获取参数
|
boolean |
isSupportQueryWhileInsert(int insertCount)
是否不支持插入操作事务时进行查询事务
|
boolean |
isUniqueViolationException(java.sql.SQLException se)
SQL异常是否是检查出违反唯一约束时的异常
|
boolean |
isYearData(java.sql.Connection conn,
int type,
Table table,
java.lang.String columnName)
已过时。
方法已弃用,永远返回false,
是否为年类型的判断逻辑已转移到com.fr.data.core.db.dialect.base.key.fetchcolumninformation.MysqlFetchColumnInformationExecutor
|
void |
notifyTriggerChange(java.sql.Connection cn,
Table table,
TriggerAction action)
触发器状态改变
|
java.lang.Object |
parseValue(java.lang.Object value,
int type)
数据库中的值转换成field中的值
|
java.lang.String |
quartzDelegateClass()
返回定时器代理
|
java.lang.String |
quartzDelegateKey()
返回定时器代理的key
|
java.lang.Object[] |
remoteProcedureCall(java.sql.Connection connection,
java.lang.String query)
RPC: 远程存储过程调用
|
void |
setAutoCommit(java.sql.Connection conn,
boolean autoCommit)
设置该数据库连接下是否可以自动提交
|
void |
setForeignKeyChecks(java.sql.Connection conn,
int keyChecks)
设置外键约束
|
boolean |
supportsCascadeDelete()
是否支持串联删除
|
boolean |
supportsLimitOffset(java.lang.String originalQuery)
是否支持限制查询
|
boolean |
supportsUniqueConstraintInCreateAlterTable()
该数据库在添加和修改表的时候是否支持添加特定的约束
|
boolean |
supportsUniqueViolationExceptionCheck()
该数据库是否支持检查违反唯一约束
|
java.lang.String |
table2SQL(Table table)
将表转化成SQL语句
|
void |
updateForeignKey(java.sql.Connection connection,
java.util.List<ForeignKey> foreignKeyList,
Table table,
boolean newTable)
更新外键的实现
|
static final int DISABLE_FOREIGN_KEY_CHECKS
static final int ENABLE_FOREIGN_KEY_CHECKS
void initTables(JDBCDataAccessObjectOperator manager, java.sql.Connection cn, ObjectMappingTable[] tableObj) throws java.lang.Exception
manager
- 数据连接操作cn
- 连接tableObj
- 表信息java.lang.Exception
java.lang.StringBuffer columnInit(java.lang.StringBuffer columnSQL, Column column)
columnSQL
- 字段sqlcolumn
- 字段java.lang.String cascadeDeletePosition(boolean delCascade, boolean isSupportsCascadeDelete, java.lang.StringBuffer buf)
delCascade
- 是否支持串联删除isSupportsCascadeDelete
- 方言buf
- 语句部分int getFetchSize()
java.lang.String column2SQL(java.lang.String columnName)
columnName
- 列名java.lang.String column2SQL4WhereSQL(java.lang.String string, int type)
string
- 列名type
- 类型java.lang.String columnType2SQL(int columnType, java.lang.String columnSize)
columnType
- 列类型columnSize
- 列大小java.lang.String table2SQL(Table table)
table
- 要转化的表java.lang.String[] getSchemas(java.sql.Connection conn) throws java.lang.Exception
conn
- 数据库连接java.lang.Exception
TableProcedure[] getTableProcedure(java.sql.Connection connection, java.lang.String schema, boolean b) throws java.lang.Exception
connection
- 数据库连接schema
- 模式b
- oracle是否显示所有表java.lang.Exception
TableProcedure[] getTableProcedure(Connection database, java.sql.Connection connection, java.lang.String schema, boolean b) throws java.lang.Exception
database
- 报表数据连接connection
- 数据库连接schema
- 模式b
- oracle是否显示所有表java.lang.Exception
TableProcedure[] getProcedureList(java.sql.Connection connection, java.lang.String catalog, java.lang.String schema, boolean isOracleSysSpace)
connection
- 数据库连接catalog
- 包名schema
- 模式java.lang.String createSequence(java.sql.Connection conn, java.lang.String tableName, java.lang.String columnName, java.lang.String columnType)
conn
- 数据库连接tableName
- 表名columnName
- 列名columnType
- 列类型void createTriggerForSequenceParameter(java.sql.Connection cn, java.lang.String tableName, java.lang.String columnName)
cn
- tableName
- columnName
- java.lang.String getIdentitySelectString(java.lang.String table, java.lang.String column, int type) throws java.lang.Exception
table
- 表名column
- 列type
- 字段类型java.lang.Exception
void setAutoCommit(java.sql.Connection conn, boolean autoCommit) throws java.sql.SQLException
conn
- 数据库连接autoCommit
- true表示可以自定提交,false表示不自动提交java.sql.SQLException
boolean supportsLimitOffset(java.lang.String originalQuery)
originalQuery
- java.lang.String getLimitString(java.lang.String query, int offset, int limit)
query
- 原始的SQLoffset
- 起始位置limit
- 限制值java.lang.String getCountSql(java.lang.String sql)
sql
- 需要被查询的数据boolean isYearData(java.sql.Connection conn, int type, Table table, java.lang.String columnName)
conn
- 数据库连接type
- 列字段类型table
- 数据库表columnName
- 列名java.lang.String quartzDelegateClass()
java.lang.String quartzDelegateKey()
java.lang.String defaultValidationQuery(java.sql.Connection conn)
conn
- 数据库连接StoreProcedureParameter[] getStoreProcedureDeclarationParameters(java.sql.Connection conn, java.lang.String name, java.lang.String parameterDefaultValue)
conn
- 数据库连接name
- 数据库表名SQLTypeHandlerFactory buildSQLTypeHandlerFactory()
boolean supportsCascadeDelete()
java.lang.String buildForeignKeyString(java.lang.String constraintName, java.lang.String[] foreignKey, java.lang.String referencedTable, java.lang.String[] primaryKey, boolean referencesPrimaryKey)
constraintName
- 约束字段名foreignKey
- 列名referencedTable
- 外键表名primaryKey
- 主键referencesPrimaryKey
- 是否引用主键void updateForeignKey(java.sql.Connection connection, java.util.List<ForeignKey> foreignKeyList, Table table, boolean newTable)
connection·
- foreignKeyList
- newTable
- boolean supportsUniqueConstraintInCreateAlterTable()
boolean supportsUniqueViolationExceptionCheck()
boolean isUniqueViolationException(java.sql.SQLException se)
se
- SQL异常java.lang.String getStoreProcedureText(java.sql.Connection conn, java.lang.String name, java.lang.String charSetName)
conn
- 数据库连接name
- 数据库表名charSetName
- 字符集boolean isSupportFetchText()
java.lang.Object parseValue(java.lang.Object value, int type)
value
- 值type
- 值的类型java.lang.String getTableCommentName(java.sql.Connection conn, java.lang.String tableName, java.lang.String schema, java.lang.String dbLink)
conn
- tableName
- schema
- java.util.List<FieldMessage> getTableFieldsMessage(java.sql.Connection conn, java.lang.String tableName, java.lang.String schema, java.lang.String dbLink)
conn
- tableName
- schema
- java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getTableFieldsInfor(java.sql.Connection conn, java.lang.String tableName, java.lang.String schema, java.lang.String dbLink)
conn
- tableName
- schema
- dbLink
- java.sql.Statement createLimitUseStatement(java.sql.Connection conn) throws java.sql.SQLException
conn
- 数据连接java.sql.SQLException
java.sql.ResultSet createLimitResultSet(Connection database, java.sql.Connection conn, java.sql.Statement stmt, java.lang.String[] fieldNames, java.lang.String schema, java.lang.String tableName, java.lang.String dbLink, long startRow) throws java.sql.SQLException
database
- 数据连接conn
- 连接stmt
- 语句fieldNames
- 字段名字schema
- 模式tableName
- 表名dbLink
- 连接startRow
- 开始行java.sql.SQLException
java.lang.String createLimitSQL(java.lang.String sql, java.lang.String[] fieldNames, long startRow) throws javax.transaction.NotSupportedException
sql
- sql语句fieldNames
- 字段名startRow
- 开始行javax.transaction.NotSupportedException
java.lang.String getSpecificRowSql(java.lang.String sql, int row)
sql
- sql语句row
- 行java.lang.String getRowRangeSql(java.lang.String sql, int start, int end, java.lang.String[] cols)
sql
- sql语句start
- 开始行end
- 结束行java.lang.String getTopNRowSql(int rowCount, Table table) throws javax.transaction.NotSupportedException
rowCount
- 行数table
- 表名javax.transaction.NotSupportedException
- 异常boolean isSupportQueryWhileInsert(int insertCount)
insertCount
- 插入行数ColumnInformation[] getColumnInformation(java.sql.Connection connection, java.sql.ResultSet rs, java.lang.String sql, java.lang.String oriCharsetName, java.lang.String newCharsetName) throws java.sql.SQLException
connection
- 数据库连接rs
- 结果集oriCharsetName
- 原始编码newCharsetName
- 结果编码java.sql.SQLException
- 执行出错则抛出此异常void setForeignKeyChecks(java.sql.Connection conn, int keyChecks)
conn
- 数据连接keyChecks
- 外键约束
DISABLE_FOREIGN_KEY_CHECKS 表示取消, ENABLE_FOREIGN_KEY_CHECKS 表示需要java.lang.String createSQL4Columns(java.lang.String query)
query
- TableProcedure[] getAllTableProcedure(Connection database, java.lang.String type)
java.sql.Statement createStatement(java.sql.Connection connection, java.lang.String sql) throws java.sql.SQLException
connection
- 连接sql
- sql语句java.sql.SQLException
java.sql.ResultSet executeQuery(java.sql.Statement statement, java.lang.String sql, java.sql.Connection connection) throws java.sql.SQLException
sql
- 数据库语句statement
- 声明connection
- 数据连接java.sql.SQLException
boolean isNULL(java.lang.Object object)
object
- 字段值void notifyTriggerChange(java.sql.Connection cn, Table table, TriggerAction action)
cn
- 数据连接操作table
- 表Exception\
java.lang.Object[] remoteProcedureCall(java.sql.Connection connection, java.lang.String query) throws java.sql.SQLException
connection
- 数据连接query
- SQL语句java.sql.SQLException
<E extends DialectParameter> void execute(DialectVoidKey<E> key, E parameter)
E
- key
- parameter
- <E extends DialectParameter,T extends java.lang.Throwable> void execute(DialectVoidWithExceptionKey<E,T> key, E parameter) throws T extends java.lang.Throwable
E
- key
- parameter
- T extends java.lang.Throwable
<E extends DialectParameter,R> R execute(DialectResultKey<E,R> key, E parameter)
E
- key
- parameter
- <E extends DialectParameter,R,ET extends java.lang.Throwable> R execute(DialectResultWithExceptionKey<E,R,ET> key, E parameter) throws ET extends java.lang.Throwable
E
- key
- parameter
- ET extends java.lang.Throwable
void execute(DialectVoidKey<DialectEmptyParameter> key)
key
- <T extends java.lang.Throwable> void execute(DialectVoidWithExceptionKey<DialectEmptyParameter,T> key) throws T extends java.lang.Throwable
key
- T extends java.lang.Throwable
<R> R execute(DialectResultKey<DialectEmptyParameter,R> key)
key
- <R,ET extends java.lang.Throwable> R execute(DialectResultWithExceptionKey<DialectEmptyParameter,R,ET> key) throws ET extends java.lang.Throwable
key
- ET extends java.lang.Throwable