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
在接口中 Dialect
manager
- 字段sqlcn
- 字段tableObjs
- java.lang.Exception
public java.lang.StringBuffer columnInit(java.lang.StringBuffer columnSQL, Column column)
columnInit
在接口中 Dialect
columnSQL
- 字段sqlcolumn
- 字段public java.lang.String cascadeDeletePosition(boolean delCascade, boolean isSupportsCascadeDelete, java.lang.StringBuffer buf)
cascadeDeletePosition
在接口中 Dialect
delCascade
- 是否支持串联删除isSupportsCascadeDelete
- 是否支持级联删除buf
- 语句部分public int getFetchSize()
getFetchSize
在接口中 Dialect
public java.lang.String column2SQL(java.lang.String columnName)
column2SQL
在接口中 Dialect
columnName
- 列名public java.lang.String column2SQL4WhereSQL(java.lang.String columnName, int i)
column2SQL4WhereSQL
在接口中 Dialect
columnName
- 列名i
- 数public java.lang.String columnType2SQL(int columnType, java.lang.String columnSize)
columnType2SQL
在接口中 Dialect
columnType
- 列类型columnSize
- 列大小public java.lang.String table2SQL(Table table)
public java.lang.String[] getSchemas(java.sql.Connection conn) throws java.lang.Exception
getSchemas
在接口中 Dialect
conn
- 数据库连接java.lang.Exception
public TableProcedure[] getTableProcedure(Connection database, java.sql.Connection connection, java.lang.String schema, boolean b) throws java.lang.Exception
getTableProcedure
在接口中 Dialect
database
- 数据库连接connection
- 数据库连接schema
- 模式b
- oracle是否显示所有表java.lang.Exception
public TableProcedure[] getProcedureList(java.sql.Connection connection, java.lang.String catalog, java.lang.String schema, boolean isOracleSysSpace)
Dialect
getProcedureList
在接口中 Dialect
connection
- 数据库连接catalog
- 包名schema
- 模式public TableProcedure[] getTableProcedure(java.sql.Connection connection, java.lang.String schema, boolean b) throws java.lang.Exception
Dialect
getTableProcedure
在接口中 Dialect
connection
- 数据库连接schema
- 模式b
- oracle是否显示所有表java.lang.Exception
public boolean supportsUniqueConstraintInCreateAlterTable()
supportsUniqueConstraintInCreateAlterTable
在接口中 Dialect
public boolean supportsUniqueViolationExceptionCheck()
supportsUniqueViolationExceptionCheck
在接口中 Dialect
public boolean isUniqueViolationException(java.sql.SQLException se)
isUniqueViolationException
在接口中 Dialect
se
- SQL异常public java.lang.String getStoreProcedureText(java.sql.Connection conn, java.lang.String name, java.lang.String charSetName)
getStoreProcedureText
在接口中 Dialect
conn
- 数据库连接name
- 数据库表名charSetName
- 字符集名public java.lang.String createSequence(java.sql.Connection conn, java.lang.String tableName, java.lang.String columnName, java.lang.String columnType)
createSequence
在接口中 Dialect
conn
- 数据库连接tableName
- 表名columnName
- 列名columnType
- 列类型public void createTriggerForSequenceParameter(java.sql.Connection cn, java.lang.String tableName, java.lang.String columnName)
Dialect
createTriggerForSequenceParameter
在接口中 Dialect
cn
- tableName
- columnName
- public java.lang.String getIdentitySelectString(java.lang.String table, java.lang.String column, int type) throws java.lang.Exception
getIdentitySelectString
在接口中 Dialect
table
- 表名column
- 列type
- 字段类型java.lang.Exception
public void setAutoCommit(java.sql.Connection conn, boolean autoCommit) throws java.sql.SQLException
setAutoCommit
在接口中 Dialect
conn
- 数据库连接autoCommit
- true表示可以自定提交,false表示不自动提交java.sql.SQLException
public java.lang.String getLimitString(java.lang.String query, int offset, int limit)
getLimitString
在接口中 Dialect
query
- 原始的SQLoffset
- 起始位置,最小为0limit
- 限制值,即查询出来的条数public boolean supportsLimitOffset(java.lang.String originalQuery)
supportsLimitOffset
在接口中 Dialect
originalQuery
- public java.lang.String getCountSql(java.lang.String sql)
getCountSql
在接口中 Dialect
sql
- 需要被查询的数据public boolean isYearData(java.sql.Connection conn, int type, Table table, java.lang.String name)
isYearData
在接口中 Dialect
conn
- 数据库连接type
- 列字段类型table
- 数据库表name
- 列名public java.lang.String quartzDelegateClass()
quartzDelegateClass
在接口中 Dialect
public java.lang.String quartzDelegateKey()
quartzDelegateKey
在接口中 Dialect
public java.lang.String defaultValidationQuery(java.sql.Connection conn)
defaultValidationQuery
在接口中 Dialect
conn
- 数据库连接public boolean isSupportFetchText()
isSupportFetchText
在接口中 Dialect
public java.lang.String getTableCommentName(java.sql.Connection conn, java.lang.String tableName, java.lang.String schema, java.lang.String dbLink)
getTableCommentName
在接口中 Dialect
conn
- 数据连接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
在接口中 Dialect
conn
- 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
在接口中 Dialect
conn
- 数据连接tableName
- 表名schema
- 数据模式public java.lang.Object parseValue(java.lang.Object value, int type)
parseValue
在接口中 Dialect
value
- 待转换的数据type
- 类型public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(java.sql.Connection conn, java.lang.String name, java.lang.String parameterDefaultValue)
getStoreProcedureDeclarationParameters
在接口中 Dialect
conn
- 数据库连接name
- 数据库表名public SQLTypeHandlerFactory buildSQLTypeHandlerFactory()
buildSQLTypeHandlerFactory
在接口中 Dialect
public boolean supportsCascadeDelete()
supportsCascadeDelete
在接口中 Dialect
public java.lang.String buildForeignKeyString(java.lang.String constraintName, java.lang.String[] foreignKey, java.lang.String referencedTable, java.lang.String[] primaryKey, boolean referencesPrimaryKey)
buildForeignKeyString
在接口中 Dialect
constraintName
- 约束字段名foreignKey
- 列名referencedTable
- 外键表名primaryKey
- 主键referencesPrimaryKey
- 是否引用主键public void updateForeignKey(java.sql.Connection connection, java.util.List<ForeignKey> foreignKeyList, Table table, boolean newTable)
Dialect
updateForeignKey
在接口中 Dialect
public 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
在接口中 Dialect
database
- 数据连接conn
- 连接stmt
- Statement语句fieldNames
- 字段名字schema
- 数据模式tableName
- 表名dbLink
- 连接startRow
- 开始行java.sql.SQLException
public java.sql.Statement createLimitUseStatement(java.sql.Connection conn) throws java.sql.SQLException
createLimitUseStatement
在接口中 Dialect
conn
- 数据连接java.sql.SQLException
public java.lang.String createLimitSQL(java.lang.String sql, java.lang.String[] fieldNames, long startRow) throws javax.transaction.NotSupportedException
createLimitSQL
在接口中 Dialect
sql
- sql语句fieldNames
- 字段名startRow
- 开始行javax.transaction.NotSupportedException
public java.lang.String getSpecificRowSql(java.lang.String sql, int row)
Dialect
getSpecificRowSql
在接口中 Dialect
sql
- sql语句row
- 行public java.lang.String getRowRangeSql(java.lang.String sql, int start, int end, java.lang.String[] cols)
Dialect
getRowRangeSql
在接口中 Dialect
sql
- sql语句start
- 开始行end
- 结束行cols
- public java.lang.String getTopNRowSql(int rowCount, Table table) throws javax.transaction.NotSupportedException
Dialect
getTopNRowSql
在接口中 Dialect
rowCount
- 行数table
- 表名javax.transaction.NotSupportedException
- 异常public boolean isSupportQueryWhileInsert(int insertCount)
isSupportQueryWhileInsert
在接口中 Dialect
insertCount
- 实际插入的行数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
Dialect
getColumnInformation
在接口中 Dialect
connection
- 数据库连接rs
- 结果集oriCharsetName
- 原始编码newCharsetName
- 结果编码java.sql.SQLException
- 执行出错则抛出此异常public void setForeignKeyChecks(java.sql.Connection conn, int keyChecks)
Dialect
setForeignKeyChecks
在接口中 Dialect
conn
- 数据连接keyChecks
- 外键约束public java.lang.String createSQL4Columns(java.lang.String query)
createSQL4Columns
在接口中 Dialect
query
- 原始sqlpublic TableProcedure[] getAllTableProcedure(Connection database, java.lang.String type)
getAllTableProcedure
在接口中 Dialect
public java.sql.Statement createStatement(java.sql.Connection connection, java.lang.String sql) throws java.sql.SQLException
createStatement
在接口中 Dialect
connection
- 连接sql
- sql语句java.sql.SQLException
public java.sql.ResultSet executeQuery(java.sql.Statement statement, java.lang.String sql, java.sql.Connection connection) throws java.sql.SQLException
executeQuery
在接口中 Dialect
sql
- 数据库语句statement
- 声明connection
- 数据连接java.sql.SQLException
public boolean isNULL(java.lang.Object object)
public void notifyTriggerChange(java.sql.Connection cn, Table table, TriggerAction action)
Dialect
notifyTriggerChange
在接口中 Dialect
cn
- 数据连接操作table
- 表action
- public java.lang.Object[] remoteProcedureCall(java.sql.Connection connection, java.lang.String query) throws java.sql.SQLException
remoteProcedureCall
在接口中 Dialect
connection
- 数据连接query
- SQL语句java.sql.SQLException