类 SQLHelper

java.lang.Object
cool.scx.dao.schema.SQLHelper

public final class SQLHelper extends Object
todo 数据库 DDL 创建工具
  • 构造器详细资料

    • SQLHelper

      public SQLHelper()
  • 方法详细资料

    • getCreateTableDDL

      public static String getCreateTableDDL(TableInfo<?> tableInfo)
      获取建表语句
      返回:
      s
    • getMigrateSQL

      public static String getMigrateSQL(TableInfo oldTable, TableInfo newTable)
    • verify

      public static SchemaVerifyResult verify(TableInfo oldTable, TableInfo newTable)
    • getMySQLType

      public static SQLType getMySQLType(Class<?> javaType)
      获取 mysql 类型 用于后续判断类型是否可以由 JDBC 进行 SQLType 到 JavaType 的直接转换

      例子 : String 可以由 varchar 直接转换 true Integer 可以由 int 直接转换 true User 不可以由 json 直接转换 false

      参数:
      javaType - 需要判断的类型
      返回:
      r
    • getAlertTableDDL

      public static String getAlertTableDDL(List<? extends ColumnInfo> nonExistentColumnName, String tableName)
      获取修复表的语句
      参数:
      nonExistentColumnName - java 字段的名称 (注意 : fieldNames 中存在但 allFields 中不存在的则会忽略)
      返回:
      a
    • initSpecialDDL

      public static String[] initSpecialDDL(ColumnInfo column)
      当前列对象特殊的 DDL 如设置是否为主键 是否创建索引 是否是唯一值 (建表语句片段 , 需和 normalDDL 一起使用才完整)
    • fixTable

      public static void fixTable(TableInfo<?> tableInfo, String databaseName, DataSource dataSource) throws SQLException
      a
      参数:
      tableInfo - a
      抛出:
      SQLException - a
    • getTableAllColumnNames

      public static List<String> getTableAllColumnNames(Connection con, String databaseName, String tableName) throws SQLException
      根据连接 获取数据库中所有的字段
      参数:
      con - 连接
      databaseName - 数据库名称
      tableName - 表名称
      返回:
      如果表存在返回所有字段的名称 否则返回 null
      抛出:
      SQLException - s
    • checkNeedFixTable

      public static boolean checkNeedFixTable(TableInfo<?> tableInfo, String databaseName, DataSource dataSource) throws SQLException
      检查是否需要修复表
      参数:
      tableInfo - a
      返回:
      true 需要 false 不需要
      抛出:
      SQLException - e
    • getMySQLTypeCreateName

      public static String getMySQLTypeCreateName(Class<?> javaType)
      根据 class 获取对应的 SQLType 类型 如果没有则返回 JSON
      参数:
      javaType - 需要获取的类型
      返回:
      a String object.