public abstract class AbstractDialect extends java.lang.Object implements Dialect
DISABLE_FOREIGN_KEY_CHECKS, ENABLE_FOREIGN_KEY_CHECKS| 构造器和说明 |
|---|
AbstractDialect() |
| 限定符和类型 | 方法和说明 |
|---|---|
java.lang.String |
buildForeignKeyString(java.lang.String constraintName,
java.lang.String[] foreignKey,
java.lang.String referencedTable,
java.lang.String[] primaryKey,
boolean referencesPrimaryKey)
daniel:冤枉啊 这里不是我写的 不敢乱改啊!
|
SQLTypeHandlerFactory |
buildSQLTypeHandlerFactory()
构建SQLTypeHandler工厂
|
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 columnName,
int i)
生成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)
获取列信息的sql
|
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[] tableObjs)
数据库字段初始化是否可以允许有默认NULL
|
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 name)
判断是否是年类型的字段,主要针对MySQL的年类型
|
void |
notifyTriggerChange(java.sql.Connection cn,
Table table,
TriggerAction action)
触发器状态改变
|
java.lang.Object |
parseValue(java.lang.Object value,
int type)
按照类型转换数据
|
protected <E extends DialectParameter,T extends Executor> |
putExecutor(DialectKey<E,T> key,
T executor) |
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)
更新外键的实现
|
protected final <E extends DialectParameter,T extends Executor> void putExecutor(DialectKey<E,T> key, T executor)
public final void execute(DialectVoidKey<DialectEmptyParameter> key)
public final <T extends java.lang.Throwable> void execute(DialectVoidWithExceptionKey<DialectEmptyParameter,T> key) throws T extends java.lang.Throwable
public final <R> R execute(DialectResultKey<DialectEmptyParameter,R> key)
public final <R,ET extends java.lang.Throwable> R execute(DialectResultWithExceptionKey<DialectEmptyParameter,R,ET> key) throws ET extends java.lang.Throwable
public final <E extends DialectParameter> void execute(DialectVoidKey<E> key, E parameter)
public final <E extends DialectParameter,T extends java.lang.Throwable> void execute(DialectVoidWithExceptionKey<E,T> key, E parameter) throws T extends java.lang.Throwable
public final <E extends DialectParameter,R> R execute(DialectResultKey<E,R> key, E parameter)
public final <E extends DialectParameter,R,ET extends java.lang.Throwable> R execute(DialectResultWithExceptionKey<E,R,ET> key, E parameter) throws ET extends java.lang.Throwable
public void initTables(JDBCDataAccessObjectOperator manager, java.sql.Connection cn, ObjectMappingTable[] tableObjs) throws java.lang.Exception
initTables 在接口中 Dialectmanager - 字段sqlcn - 字段tableObjs - java.lang.Exceptionpublic java.lang.StringBuffer columnInit(java.lang.StringBuffer columnSQL,
Column column)
columnInit 在接口中 DialectcolumnSQL - 字段sqlcolumn - 字段public java.lang.String cascadeDeletePosition(boolean delCascade,
boolean isSupportsCascadeDelete,
java.lang.StringBuffer buf)
cascadeDeletePosition 在接口中 DialectdelCascade - 是否支持串联删除isSupportsCascadeDelete - 是否支持级联删除buf - 语句部分public int getFetchSize()
getFetchSize 在接口中 Dialectpublic java.lang.String column2SQL(java.lang.String columnName)
column2SQL 在接口中 DialectcolumnName - 列名public java.lang.String column2SQL4WhereSQL(java.lang.String columnName,
int i)
column2SQL4WhereSQL 在接口中 DialectcolumnName - 列名i - 数public java.lang.String columnType2SQL(int columnType,
java.lang.String columnSize)
columnType2SQL 在接口中 DialectcolumnType - 列类型columnSize - 列大小public java.lang.String table2SQL(Table table)
public java.lang.String[] getSchemas(java.sql.Connection conn)
throws java.lang.Exception
getSchemas 在接口中 Dialectconn - 数据库连接java.lang.Exceptionpublic TableProcedure[] getTableProcedure(Connection database, java.sql.Connection connection, java.lang.String schema, boolean b) throws java.lang.Exception
getTableProcedure 在接口中 Dialectdatabase - 数据库连接connection - 数据库连接schema - 模式b - oracle是否显示所有表java.lang.Exceptionpublic TableProcedure[] getProcedureList(java.sql.Connection connection, java.lang.String catalog, java.lang.String schema, boolean isOracleSysSpace)
DialectgetProcedureList 在接口中 Dialectconnection - 数据库连接catalog - 包名schema - 模式public TableProcedure[] getTableProcedure(java.sql.Connection connection, java.lang.String schema, boolean b) throws java.lang.Exception
DialectgetTableProcedure 在接口中 Dialectconnection - 数据库连接schema - 模式b - oracle是否显示所有表java.lang.Exceptionpublic boolean supportsUniqueConstraintInCreateAlterTable()
supportsUniqueConstraintInCreateAlterTable 在接口中 Dialectpublic boolean supportsUniqueViolationExceptionCheck()
supportsUniqueViolationExceptionCheck 在接口中 Dialectpublic boolean isUniqueViolationException(java.sql.SQLException se)
isUniqueViolationException 在接口中 Dialectse - SQL异常public java.lang.String getStoreProcedureText(java.sql.Connection conn,
java.lang.String name,
java.lang.String charSetName)
getStoreProcedureText 在接口中 Dialectconn - 数据库连接name - 数据库表名charSetName - 字符集名public java.lang.String createSequence(java.sql.Connection conn,
java.lang.String tableName,
java.lang.String columnName,
java.lang.String columnType)
createSequence 在接口中 Dialectconn - 数据库连接tableName - 表名columnName - 列名columnType - 列类型public void createTriggerForSequenceParameter(java.sql.Connection cn,
java.lang.String tableName,
java.lang.String columnName)
DialectcreateTriggerForSequenceParameter 在接口中 Dialectcn - tableName - columnName - public java.lang.String getIdentitySelectString(java.lang.String table,
java.lang.String column,
int type)
throws java.lang.Exception
getIdentitySelectString 在接口中 Dialecttable - 表名column - 列type - 字段类型java.lang.Exceptionpublic void setAutoCommit(java.sql.Connection conn,
boolean autoCommit)
throws java.sql.SQLException
setAutoCommit 在接口中 Dialectconn - 数据库连接autoCommit - true表示可以自定提交,false表示不自动提交java.sql.SQLExceptionpublic java.lang.String getLimitString(java.lang.String query,
int offset,
int limit)
getLimitString 在接口中 Dialectquery - 原始的SQLoffset - 起始位置,最小为0limit - 限制值,即查询出来的条数public boolean supportsLimitOffset(java.lang.String originalQuery)
supportsLimitOffset 在接口中 DialectoriginalQuery - public java.lang.String getCountSql(java.lang.String sql)
getCountSql 在接口中 Dialectsql - 需要被查询的数据public boolean isYearData(java.sql.Connection conn,
int type,
Table table,
java.lang.String name)
isYearData 在接口中 Dialectconn - 数据库连接type - 列字段类型table - 数据库表name - 列名public java.lang.String quartzDelegateClass()
quartzDelegateClass 在接口中 Dialectpublic java.lang.String quartzDelegateKey()
quartzDelegateKey 在接口中 Dialectpublic java.lang.String defaultValidationQuery(java.sql.Connection conn)
defaultValidationQuery 在接口中 Dialectconn - 数据库连接public boolean isSupportFetchText()
isSupportFetchText 在接口中 Dialectpublic java.lang.String getTableCommentName(java.sql.Connection conn,
java.lang.String tableName,
java.lang.String schema,
java.lang.String dbLink)
getTableCommentName 在接口中 Dialectconn - 数据连接tableName - 表名schema - 数据模式public 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)
getTableFieldsInfor 在接口中 Dialectconn - tableName - schema - dbLink - public java.util.List<FieldMessage> getTableFieldsMessage(java.sql.Connection conn, java.lang.String tableName, java.lang.String schema, java.lang.String dbLink)
getTableFieldsMessage 在接口中 Dialectconn - 数据连接tableName - 表名schema - 数据模式public java.lang.Object parseValue(java.lang.Object value,
int type)
parseValue 在接口中 Dialectvalue - 待转换的数据type - 类型public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(java.sql.Connection conn, java.lang.String name, java.lang.String parameterDefaultValue)
getStoreProcedureDeclarationParameters 在接口中 Dialectconn - 数据库连接name - 数据库表名public SQLTypeHandlerFactory buildSQLTypeHandlerFactory()
buildSQLTypeHandlerFactory 在接口中 Dialectpublic boolean supportsCascadeDelete()
supportsCascadeDelete 在接口中 Dialectpublic java.lang.String buildForeignKeyString(java.lang.String constraintName,
java.lang.String[] foreignKey,
java.lang.String referencedTable,
java.lang.String[] primaryKey,
boolean referencesPrimaryKey)
buildForeignKeyString 在接口中 DialectconstraintName - 约束字段名foreignKey - 列名referencedTable - 外键表名primaryKey - 主键referencesPrimaryKey - 是否引用主键public void updateForeignKey(java.sql.Connection connection,
java.util.List<ForeignKey> foreignKeyList,
Table table,
boolean newTable)
DialectupdateForeignKey 在接口中 Dialectpublic 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
createLimitResultSet 在接口中 Dialectdatabase - 数据连接conn - 连接stmt - Statement语句fieldNames - 字段名字schema - 数据模式tableName - 表名dbLink - 连接startRow - 开始行java.sql.SQLExceptionpublic java.sql.Statement createLimitUseStatement(java.sql.Connection conn)
throws java.sql.SQLException
createLimitUseStatement 在接口中 Dialectconn - 数据连接java.sql.SQLExceptionpublic java.lang.String createLimitSQL(java.lang.String sql,
java.lang.String[] fieldNames,
long startRow)
throws javax.transaction.NotSupportedException
createLimitSQL 在接口中 Dialectsql - sql语句fieldNames - 字段名startRow - 开始行javax.transaction.NotSupportedExceptionpublic java.lang.String getSpecificRowSql(java.lang.String sql,
int row)
DialectgetSpecificRowSql 在接口中 Dialectsql - sql语句row - 行public java.lang.String getRowRangeSql(java.lang.String sql,
int start,
int end,
java.lang.String[] cols)
DialectgetRowRangeSql 在接口中 Dialectsql - sql语句start - 开始行end - 结束行cols - public java.lang.String getTopNRowSql(int rowCount,
Table table)
throws javax.transaction.NotSupportedException
DialectgetTopNRowSql 在接口中 DialectrowCount - 行数table - 表名javax.transaction.NotSupportedException - 异常public boolean isSupportQueryWhileInsert(int insertCount)
isSupportQueryWhileInsert 在接口中 DialectinsertCount - 实际插入的行数public 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
DialectgetColumnInformation 在接口中 Dialectconnection - 数据库连接rs - 结果集oriCharsetName - 原始编码newCharsetName - 结果编码java.sql.SQLException - 执行出错则抛出此异常public void setForeignKeyChecks(java.sql.Connection conn,
int keyChecks)
DialectsetForeignKeyChecks 在接口中 Dialectconn - 数据连接keyChecks - 外键约束public java.lang.String createSQL4Columns(java.lang.String query)
createSQL4Columns 在接口中 Dialectquery - 原始sqlpublic TableProcedure[] getAllTableProcedure(Connection database, java.lang.String type)
getAllTableProcedure 在接口中 Dialectpublic java.sql.Statement createStatement(java.sql.Connection connection,
java.lang.String sql)
throws java.sql.SQLException
createStatement 在接口中 Dialectconnection - 连接sql - sql语句java.sql.SQLExceptionpublic java.sql.ResultSet executeQuery(java.sql.Statement statement,
java.lang.String sql,
java.sql.Connection connection)
throws java.sql.SQLException
executeQuery 在接口中 Dialectsql - 数据库语句statement - 声明connection - 数据连接java.sql.SQLExceptionpublic boolean isNULL(java.lang.Object object)
public void notifyTriggerChange(java.sql.Connection cn,
Table table,
TriggerAction action)
DialectnotifyTriggerChange 在接口中 Dialectcn - 数据连接操作table - 表action - public java.lang.Object[] remoteProcedureCall(java.sql.Connection connection,
java.lang.String query)
throws java.sql.SQLException
remoteProcedureCall 在接口中 Dialectconnection - 数据连接query - SQL语句java.sql.SQLException