Interface Dialect

All Known Implementing Classes:
DefaultDialect

public interface Dialect
方言 用于针对不同数据库进行差异归一化
Version:
0.0.1
Author:
scx567888
  • Method Details

    • canHandle

      boolean canHandle(String url)
      是否可以处理
    • canHandle

      boolean canHandle(DataSource dataSource)
      是否可以处理
    • canHandle

      boolean canHandle(Driver driver)
      是否可以处理
    • createDataSource

      DataSource createDataSource(String url, String username, String password, String[] parameters)
      创建数据源
    • beforeExecuteQuery

      default PreparedStatement beforeExecuteQuery(PreparedStatement preparedStatement) throws SQLException
      执行前处理
      Throws:
      SQLException
    • getFinalSQL

      String getFinalSQL(Statement statement)
       获取最终的 SQL, 一般用于 Debug
    • findTypeHandler

      <T> TypeHandler<T> findTypeHandler(Type type)
      查找
    • dialectDataTypeToJDBCType

      JDBCType dialectDataTypeToJDBCType(String dialectDataType)
      方言数据类型 转换为 标准数据类型
      Parameters:
      dialectDataType - 方言数据类型
      Returns:
      标准数据类型
    • jdbcTypeToDialectDataType

      String jdbcTypeToDialectDataType(JDBCType jdbcType)
      标准数据类型 转换为 方言数据类型
      Parameters:
      jdbcType - 标准数据类型
      Returns:
      方言数据类型
    • quoteIdentifier

      default String quoteIdentifier(String identifier)
      将字段名或表名用数据库对应的转义符包装(如 MySQL 使用反引号)
      Parameters:
      identifier - 原始字段名或表名
      Returns:
      加了转义符的 SQL 标识符
    • falseExpression

      default String falseExpression()
      false 表达式
    • trueExpression

      default String trueExpression()
      true 表达式
    • applyLimit

      default String applyLimit(String sql, Long offset, Long limit)
      应用分页
    • applySharedLock

      default String applySharedLock(String sql)
      应用锁
    • applyExclusiveLock

      default String applyExclusiveLock(String sql)
      应用锁
    • getCreateTableDDL

      default String getCreateTableDDL(Table table)
      获取建表语句
    • getCreateDefinition

      default List<String> getCreateDefinition(Table table)
    • getColumnDefinitions

      default List<String> getColumnDefinitions(Column[] columns)
    • getTableConstraint

      default List<String> getTableConstraint(Table table)
    • getColumnDefinition

      default String getColumnDefinition(Column column)
    • getDataTypeDefinition

      default String getDataTypeDefinition(Column column)
    • defaultDataType

      default String defaultDataType()
      默认值 todo 是否需要 ?
      Returns:
      默认类型值
    • getDataTypeNameByJDBCType

      default String getDataTypeNameByJDBCType(JDBCType dataType)
    • getDataTypeDefinitionByName

      default String getDataTypeDefinitionByName(String dataType, Integer length)
    • getColumnConstraint

      default List<String> getColumnConstraint(Column column)
      当前列对象通常的 DDL 如设置 字段名 类型 是否可以为空 默认值等 (建表语句片段 , 需和 specialDDL 一起使用才完整)
    • getAlterTableDDL

      default String getAlterTableDDL(Column[] needAdds, Table tableInfo)
      todo 暂时只支持添加新字段 需要同时支持 删除或修改 获取 AlertTableDDL
      Parameters:
      needAdds - a
      tableInfo - a