Interface DDLDialect

All Known Implementing Classes:
BaseDDLDialect, DB2DDLDialect, DMDDLDialect, H2DDLDialect, HSQLDDLDialect, MariaDBDDLDialect, MySQLDDLDialect, OracleDDLDialect, PostgreSQLDDLDialect, SQLiteDDLDialect, SQLServerDDLDialect

public interface DDLDialect
DDL方言
Author:
Maning
  • Method Details

    • of

      static DDLDialect of(Dialect dialect)
      通过数据库方言解析DDL方言
      Parameters:
      dialect - 数据库方言
      Returns:
      DDL方言
    • addPrimaryKeyAddNotNull

      default boolean addPrimaryKeyAddNotNull()
      添加主键时,检查添加notnull
      Returns:
      添加主键时,检查添加notnull
    • addUniqueAddNotNull

      default boolean addUniqueAddNotNull()
      添加唯一时,检查添加notnull
      Returns:
      添加唯一时,检查添加notnull
    • autoIncrementSyntaxSegment

      String autoIncrementSyntaxSegment()
      自增语法片段
      Returns:
      自增语法片段
    • bigintType

      default TypeDef bigintType()
      bigint类型名称
      Returns:
      bigint类型名称
    • blobType

      default TypeDef blobType()
      blob类型名称
      Returns:
      blob类型名称
    • booleanType

      default TypeDef booleanType()
      boolean类型名称
      Returns:
      boolean类型名称
    • charType

      default TypeDef charType(int length)
      char类型名称
      Parameters:
      length - 长度
      Returns:
      char类型名称
    • clobType

      default TypeDef clobType()
      clob类型名称
      Returns:
      blob类型名称
    • compareColumn

      List<DDLStatement> compareColumn(TableDef table, ColumnDef java, ColumnDef db, ConnectionProvider connectionProvider)
      比较列定义
      Parameters:
      table - 表
      java - java侧列定义
      db - 数据库侧列定义, 可能为null
      connectionProvider - 连接提供者
      Returns:
      差异语句
    • compareLengthOrScale

      default boolean compareLengthOrScale()
      是否比较长度和精度
      Returns:
      是否比较长度和精度
    • compareTable

      List<DDLStatement> compareTable(TableDef java, TableDef db, ConnectionProvider connectionProvider)
      比较表定义
      Parameters:
      java - java侧表定义
      db - 数据库侧表定义, 可能为null
      connectionProvider - 连接提供者
      Returns:
      差异语句
    • dateType

      default TypeDef dateType()
      date类型名称
      Returns:
      date类型名称
    • dbTypeMapping

      default Map<Class<?>,TypeDef> dbTypeMapping()
      数据库的类型映射
      Returns:
      类型映射
    • decimalType

      default TypeDef decimalType(int length, int scale)
      decimal类型名称
      Parameters:
      length - 长度
      scale - 精度
      Returns:
      decimal类型名称
    • embeddedColumnComment

      default boolean embeddedColumnComment()
      是否支持嵌入的列注释
      Returns:
      是否支持嵌入的列注释
    • embeddedTableComment

      default boolean embeddedTableComment()
      是否支持嵌入的表注释
      Returns:
      是否支持嵌入的表注释
    • fallbackType

      default TypeDef fallbackType(int length)
      兜底类型,一般返回json
      Parameters:
      length - 用户注解传入的长度
      Returns:
      类型定义
    • intType

      default TypeDef intType()
      int类型名称
      Returns:
      int类型名称
    • jsonType

      default TypeDef jsonType()
      JSON类型
      Returns:
      JSON类型 不支持或不使用JSON类型可以回退clobType
    • requiresExplicitNotNullForPrimaryKey

      default boolean requiresExplicitNotNullForPrimaryKey()
      列为主键时是否需要显式定义NOTNULL
      Returns:
      列为主键时是否需要显式定义NOTNULL
    • resolveEnumType

      default TypeDef resolveEnumType(Class<?> enumType, int length, EnumBy enumBy)
      解析枚举类型
      Parameters:
      enumType - 枚举类
      length - 用户注解传入的长度
      enumBy - 枚举读写取值方式
      Returns:
      类型定义
    • resolveTable

      TableDef resolveTable(Class<?> clazz, EnumBy enumBy, Map<Class<?>,TypeDef> typeMapping)
      解析表定义
      Parameters:
      clazz - 实体类
      enumBy - 枚举取值方式
      typeMapping - 类型映射
      Returns:
      表定义
    • resolveTableByJdbc

      List<TableDef> resolveTableByJdbc(ConnectionProvider connectionProvider)
      从jdbc读取表定义
      Parameters:
      connectionProvider - 连接提供者
      Returns:
      表定义
    • resolveType

      TypeDef resolveType(Class<?> javaType, int length, int scale, boolean autoIncrement, EnumBy enumBy, Map<Class<?>,TypeDef> typeMapping)
      解析数据库类型
      Parameters:
      javaType - java类型
      length - 用户注解传入的长度
      scale - 用户注解传入的精度
      autoIncrement - 是否自增
      enumBy - 枚举读写取值方式
      typeMapping - 自定义类型映射
      Returns:
      解析后的类型定义
    • smallintType

      default TypeDef smallintType()
      smallint类型名称
      Returns:
      smallint类型名称
    • timeType

      default TypeDef timeType()
      time类型名称
      Returns:
      time类型名称
    • timestrampType

      default TypeDef timestrampType()
      timestramp类型名称
      Returns:
      timestramp类型名称
    • tinyintType

      default TypeDef tinyintType()
      tinyint类型名称
      Returns:
      tinyint类型名称
    • translate

      default List<String> translate(DDLStatement statement)
      翻译DDL语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AddColumn statement)
      翻译新增列语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AlterNullabe statement)
      翻译新增列NOTNULL语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AddPrimaryKey statement)
      翻译新增主键语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AddUnique statement)
      翻译新增唯一索引语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AlterTableComment statement)
      翻译修改表注释语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AlterColumnType statement)
      翻译修改列语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AlterColumnComment statement)
      翻译修改列注释语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(CreateTable statement)
      翻译建表语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(DropPrimaryKey statement)
      翻译删除主键语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(ModifyColumn statement)
      翻译修改列语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(AlterDefault statement)
      翻译设置默认值语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translate

      List<String> translate(DropConstraint statement)
      翻译删除约束语句
      Parameters:
      statement - 语句
      Returns:
      翻译后的SQL
    • translateColumn

      String translateColumn(ColumnDef column)
      翻译列定义
      Parameters:
      column - 列定义
      Returns:
      翻译后的SQL
    • varcharType

      default TypeDef varcharType(int length)
      varchar类型名称
      Parameters:
      length - 长度
      Returns:
      varchar类型名称