|
|
@@ -88,15 +88,16 @@ public class TableGenerator {
|
|
|
|
|
|
Statement stmt = conn.createStatement();
|
|
|
|
|
|
- String sql = "DROP TABLE IF EXISTS " + model.getTableName() + "; create table " + model.getTableName() + "(";
|
|
|
+ StringBuilder sql = new StringBuilder("DROP TABLE IF EXISTS " + model.getTableName() + "; create table " + model.getTableName() + "(");
|
|
|
|
|
|
if ("SqlServer".equals(model.getDataBaseType())) {
|
|
|
- sql = "IF EXISTS (SELECT * FROM sys.objects where name = '" + model.getTableName() + "')DROP TABLE " + model.getTableName()
|
|
|
- + "; create table " + model.getTableName() + "(";
|
|
|
+ sql = new StringBuilder("IF EXISTS (SELECT * FROM sys.objects where name = '" + model.getTableName() + "')DROP TABLE " + model.getTableName()
|
|
|
+ + "; create table " + model.getTableName() + "(");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ List<String> fieldSqlList = new ArrayList<>();
|
|
|
for (TableField tableField : model.getFields()) {
|
|
|
+ StringBuilder fieldSql = new StringBuilder();
|
|
|
if (tableField.getLength() == null) {
|
|
|
switch (tableField.getJdbcType()) {
|
|
|
case "int":
|
|
|
@@ -128,68 +129,70 @@ public class TableGenerator {
|
|
|
|
|
|
if ("Mysql".equals(model.getDataBaseType())) {
|
|
|
|
|
|
- sql += " " + tableField.getName() + " " + tableField.getJdbcType() + "(" + tableField.getLength() + ")";
|
|
|
+ fieldSql.append(" ").append(tableField.getName()).append(" ").append(tableField.getJdbcType()).append("(").append(tableField.getLength()).append(")");
|
|
|
|
|
|
} else if ("SqlServer".equals(model.getDataBaseType())) {
|
|
|
if ("int".equals(tableField.getJdbcType())) {
|
|
|
|
|
|
- sql += " " + tableField.getName() + " " + tableField.getJdbcType();
|
|
|
+ fieldSql.append(" ").append(tableField.getName()).append(" ").append(tableField.getJdbcType());
|
|
|
} else {
|
|
|
- sql += " " + tableField.getName() + " " + tableField.getJdbcType() + "(" + tableField.getLength() + ")";
|
|
|
+ fieldSql.append(" ").append(tableField.getName()).append(" ").append(tableField.getJdbcType()).append("(").append(tableField.getLength()).append(")");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
if (tableField.getNotNull()) {
|
|
|
- sql += " not null ";
|
|
|
+ fieldSql.append(" not null ");
|
|
|
}
|
|
|
if (tableField.getPrimaryKey()) {
|
|
|
- sql += " primary key ";
|
|
|
+ fieldSql.append(" primary key ");
|
|
|
}
|
|
|
if (tableField.getAutoIncrease()) {
|
|
|
if ("Mysql".equals(model.getDataBaseType())) {
|
|
|
|
|
|
- sql += " auto_increment ";
|
|
|
+ fieldSql.append(" auto_increment ");
|
|
|
|
|
|
} else if ("SqlServer".equals(model.getDataBaseType())) {
|
|
|
- sql += " identity(1,1) ";
|
|
|
+ fieldSql.append(" identity(1,1) ");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(tableField.getDefaultValue())) {
|
|
|
if ("CURRENT_TIMESTAMP".equals(tableField.getDefaultValue())) {
|
|
|
|
|
|
- sql += " default " + " " + tableField.getDefaultValue() + " ";
|
|
|
+ fieldSql.append(" default " + " ").append(tableField.getDefaultValue()).append(" ");
|
|
|
|
|
|
if ("update_time".equals(tableField.getName())) {
|
|
|
- sql += " ON UPDATE CURRENT_TIMESTAMP ";
|
|
|
+ fieldSql.append(" ON UPDATE CURRENT_TIMESTAMP ");
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
- sql += " default " + "'" + tableField.getDefaultValue() + "'";
|
|
|
+ if ("bit".equalsIgnoreCase(tableField.getJdbcType())) {
|
|
|
+ fieldSql.append(" default ").append(tableField.getDefaultValue());
|
|
|
+ } else {
|
|
|
+ fieldSql.append(" default '").append(tableField.getDefaultValue()).append("'");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotEmpty(tableField.getRemark())) {
|
|
|
if ("Mysql".equals(model.getDataBaseType())) {
|
|
|
- sql += " comment " + "'" + tableField.getRemark() + "'";
|
|
|
+ fieldSql.append(" comment '").append(tableField.getRemark()).append("'");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- sql += ",";
|
|
|
+ fieldSqlList.add(fieldSql.toString());
|
|
|
}
|
|
|
- String str = sql.substring(0, sql.lastIndexOf(","));
|
|
|
- String sql1 = str + " )";
|
|
|
+ sql.append(StringUtils.join(fieldSqlList, ",")).append(")");
|
|
|
|
|
|
if (StringUtils.isNotEmpty(model.getRemark())) {
|
|
|
if ("Mysql".equals(model.getDataBaseType())) {
|
|
|
- sql1 += " comment = " + "'" + model.getRemark() + "'";
|
|
|
+ sql.append(" comment = '").append(model.getRemark()).append("'");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- System.out.println(sql1);
|
|
|
- int result = stmt.executeUpdate(sql1);
|
|
|
+ System.out.println(sql);
|
|
|
+ int result = stmt.executeUpdate(sql.toString());
|
|
|
if (result != -1) {
|
|
|
System.out.println("创建数据表成功");
|
|
|
}
|
|
|
@@ -199,8 +202,6 @@ public class TableGenerator {
|
|
|
} finally {
|
|
|
conn.close();
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|