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