mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-08-02 21:50:43 +08:00
update
This commit is contained in:
@ -157,20 +157,23 @@ public class MysqlMetaData extends DefaultMetaService implements MetaData {
|
|||||||
try {
|
try {
|
||||||
if (columnType.contains("(")) {
|
if (columnType.contains("(")) {
|
||||||
String size = columnType.substring(columnType.indexOf("(") + 1, columnType.indexOf(")"));
|
String size = columnType.substring(columnType.indexOf("(") + 1, columnType.indexOf(")"));
|
||||||
if (size.contains(",")) {
|
if("SET".equalsIgnoreCase(column.getColumnType())|| "ENUM".equalsIgnoreCase(column.getColumnType())){
|
||||||
String[] sizes = size.split(",");
|
column.setValue(size);
|
||||||
if (StringUtils.isNotBlank(sizes[0])) {
|
}else {
|
||||||
column.setColumnSize(Integer.parseInt(sizes[0]));
|
if (size.contains(",")) {
|
||||||
|
String[] sizes = size.split(",");
|
||||||
|
if (StringUtils.isNotBlank(sizes[0])) {
|
||||||
|
column.setColumnSize(Integer.parseInt(sizes[0]));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(sizes[1])) {
|
||||||
|
column.setDecimalDigits(Integer.parseInt(sizes[1]));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
column.setColumnSize(Integer.parseInt(size));
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(sizes[1])) {
|
|
||||||
column.setDecimalDigits(Integer.parseInt(sizes[1]));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
column.setColumnSize(Integer.parseInt(size));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,105 +13,105 @@ import java.util.Map;
|
|||||||
|
|
||||||
public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
||||||
|
|
||||||
BIT("BIT", true, false, true, false, false, false, true, true, false),
|
BIT("BIT", true, false, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
TINYINT("TINYINT", false, false, true, true, false, false, true, true, false),
|
TINYINT("TINYINT", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
TINYINT_UNSIGNED("TINYINT UNSIGNED", false, false, true, true, false, false, true, true, false),
|
TINYINT_UNSIGNED("TINYINT UNSIGNED", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
SMALLINT("SMALLINT", false, false, true, true, false, false, true, true, false),
|
SMALLINT("SMALLINT", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
SMALLINT_UNSIGNED("SMALLINT UNSIGNED", false, false, true, true, false, false, true, true, false),
|
SMALLINT_UNSIGNED("SMALLINT UNSIGNED", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
MEDIUMINT("MEDIUMINT", false, false, true, true, false, false, true, true, false),
|
MEDIUMINT("MEDIUMINT", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
MEDIUMINT_UNSIGNED("MEDIUMINT UNSIGNED", false, false, true, true, false, false, true, true, false),
|
MEDIUMINT_UNSIGNED("MEDIUMINT UNSIGNED", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
INT("INT", false, false, true, true, false, false, true, true, false),
|
INT("INT", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
|
|
||||||
INT_UNSIGNED("INT UNSIGNED", false, false, true, true, false, false, true, true, false),
|
INT_UNSIGNED("INT UNSIGNED", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
BIGINT("BIGINT", false, false, true, true, false, false, true, true, false),
|
BIGINT("BIGINT", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
|
|
||||||
BIGINT_UNSIGNED("BIGINT UNSIGNED", false, false, true, true, false, false, true, true, false),
|
BIGINT_UNSIGNED("BIGINT UNSIGNED", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
|
|
||||||
DECIMAL("DECIMAL", true, true, true, false, false, false, true, true, false),
|
DECIMAL("DECIMAL", true, true, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
DECIMAL_UNSIGNED("DECIMAL UNSIGNED", true, true, true, false, false, false, true, true, false),
|
DECIMAL_UNSIGNED("DECIMAL UNSIGNED", true, true, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
|
|
||||||
FLOAT("FLOAT", true, true, true, false, false, false, true, true, false),
|
FLOAT("FLOAT", true, true, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
FLOAT_UNSIGNED("FLOAT UNSIGNED", true, true, true, false, false, false, true, true, false),
|
FLOAT_UNSIGNED("FLOAT UNSIGNED", true, true, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
DOUBLE("DOUBLE", true, true, true, false, false, false, true, true, false),
|
DOUBLE("DOUBLE", true, true, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
DOUBLE_UNSIGNED("DOUBLE UNSIGNED", true, true, true, false, false, false, true, true, false),
|
DOUBLE_UNSIGNED("DOUBLE UNSIGNED", true, true, true, false, false, false, true, true, false, false),
|
||||||
DATE("DATE", false, false, true, false, false, false, true, true, false),
|
DATE("DATE", false, false, true, false, false, false, true, true, false, false),
|
||||||
DATETIME("DATETIME", true, false, true, false, false, false, true, true, true),
|
DATETIME("DATETIME", true, false, true, false, false, false, true, true, true, false),
|
||||||
|
|
||||||
TIMESTAMP("TIMESTAMP", true, false, true, false, false, false, true, true, true),
|
TIMESTAMP("TIMESTAMP", true, false, true, false, false, false, true, true, true, false),
|
||||||
TIME("TIME", true, false, true, false, false, false, true, true, false),
|
TIME("TIME", true, false, true, false, false, false, true, true, false, false),
|
||||||
YEAR("YEAR", false, false, true, false, false, false, true, true, false),
|
YEAR("YEAR", false, false, true, false, false, false, true, true, false, false),
|
||||||
CHAR("CHAR", true, false, true, false, true, true, true, true, false),
|
CHAR("CHAR", true, false, true, false, true, true, true, true, false, false),
|
||||||
|
|
||||||
VARCHAR("VARCHAR", true, false, true, false, true, true, true, true, false),
|
VARCHAR("VARCHAR", true, false, true, false, true, true, true, true, false, false),
|
||||||
|
|
||||||
BINARY("BINARY", true, false, true, false, false, false, true, true, false),
|
BINARY("BINARY", true, false, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
VARBINARY("VARBINARY", true, false, true, false, false, false, true, true, false),
|
VARBINARY("VARBINARY", true, false, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
TINYBLOB("TINYBLOB", false, false, true, false, false, false, true, false, false),
|
TINYBLOB("TINYBLOB", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
BLOB("BLOB", false, false, true, false, false, false, true, false, false),
|
BLOB("BLOB", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
MEDIUMBLOB("MEDIUMBLOB", false, false, true, false, false, false, true, false, false),
|
MEDIUMBLOB("MEDIUMBLOB", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
LONGBLOB("LONGBLOB", false, false, true, false, false, false, true, false, false),
|
LONGBLOB("LONGBLOB", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
TINYTEXT("TINYTEXT", false, false, true, false, false, true, true, false, false),
|
TINYTEXT("TINYTEXT", false, false, true, false, false, true, true, false, false, false),
|
||||||
|
|
||||||
TEXT("TEXT", false, false, true, false, false, true, true, false, false),
|
TEXT("TEXT", false, false, true, false, false, true, true, false, false, false),
|
||||||
|
|
||||||
MEDIUMTEXT("MEDIUMTEXT", false, false, true, false, false, true, true, false, false),
|
MEDIUMTEXT("MEDIUMTEXT", false, false, true, false, false, true, true, false, false, false),
|
||||||
|
|
||||||
LONGTEXT("LONGTEXT", false, false, true, false, false, true, true, false, false),
|
LONGTEXT("LONGTEXT", false, false, true, false, false, true, true, false, false, false),
|
||||||
|
|
||||||
|
|
||||||
ENUM("ENUM", false, false, true, false, false, true, true, true, true),
|
ENUM("ENUM", false, false, true, false, false, true, true, true, true, true),
|
||||||
|
|
||||||
|
|
||||||
BOOL("BOOL", false, false, true, true, false, false, true, true, false),
|
BOOL("BOOL", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
INTEGER("INTEGER", false, false, true, true, false, false, true, true, false),
|
INTEGER("INTEGER", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
INTEGER_UNSIGNED("INTEGER UNSIGNED", false, false, true, true, false, false, true, true, false),
|
INTEGER_UNSIGNED("INTEGER UNSIGNED", false, false, true, true, false, false, true, true, false, false),
|
||||||
|
|
||||||
REAL("REAL", true, true, true, false, false, false, true, true, false),
|
REAL("REAL", true, true, true, false, false, false, true, true, false, false),
|
||||||
|
|
||||||
SET("SET", false, false, true, false, false, true, true, true, true),
|
SET("SET", false, false, true, false, false, true, true, true, true, true),
|
||||||
|
|
||||||
|
|
||||||
GEOMETRY("GEOMETRY", false, false, true, false, false, false, true, false, false),
|
GEOMETRY("GEOMETRY", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
POINT("POINT", false, false, true, false, false, false, true, false, false),
|
POINT("POINT", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
LINESTRING("LINESTRING", false, false, true, false, false, false, true, false, false),
|
LINESTRING("LINESTRING", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
POLYGON("POLYGON", false, false, true, false, false, false, true, false, false),
|
POLYGON("POLYGON", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
MULTIPOINT("MULTIPOINT", false, false, true, false, false, false, true, false, false),
|
MULTIPOINT("MULTIPOINT", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
MULTILINESTRING("MULTILINESTRING", false, false, true, false, false, false, true, false, false),
|
MULTILINESTRING("MULTILINESTRING", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
MULTIPOLYGON("MULTIPOLYGON", false, false, true, false, false, false, true, false, false),
|
MULTIPOLYGON("MULTIPOLYGON", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
GEOMETRYCOLLECTION("GEOMETRYCOLLECTION", false, false, true, false, false, false, true, false, false),
|
GEOMETRYCOLLECTION("GEOMETRYCOLLECTION", false, false, true, false, false, false, true, false, false, false),
|
||||||
|
|
||||||
JSON("JSON", false, false, true, false, false, false, true, false, false);
|
JSON("JSON", false, false, true, false, false, false, true, false, false, false);
|
||||||
|
|
||||||
private ColumnType columnType;
|
private ColumnType columnType;
|
||||||
|
|
||||||
@ -124,8 +124,8 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MysqlColumnTypeEnum(String dataTypeName, boolean supportLength, boolean supportScale, boolean supportNullable, boolean supportAutoIncrement, boolean supportCharset, boolean supportCollation, boolean supportComments, boolean supportDefaultValue, boolean supportExtent) {
|
MysqlColumnTypeEnum(String dataTypeName, boolean supportLength, boolean supportScale, boolean supportNullable, boolean supportAutoIncrement, boolean supportCharset, boolean supportCollation, boolean supportComments, boolean supportDefaultValue, boolean supportExtent,boolean supportValue) {
|
||||||
this.columnType = new ColumnType(dataTypeName, supportLength, supportScale, supportNullable, supportAutoIncrement, supportCharset, supportCollation, supportComments, supportDefaultValue, supportExtent);
|
this.columnType = new ColumnType(dataTypeName, supportLength, supportScale, supportNullable, supportAutoIncrement, supportCharset, supportCollation, supportComments, supportDefaultValue, supportExtent,supportValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map<String, MysqlColumnTypeEnum> COLUMN_TYPE_MAP = Maps.newHashMap();
|
private static Map<String, MysqlColumnTypeEnum> COLUMN_TYPE_MAP = Maps.newHashMap();
|
||||||
@ -149,6 +149,10 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
|||||||
|
|
||||||
script.append(buildDataType(column, type)).append(" ");
|
script.append(buildDataType(column, type)).append(" ");
|
||||||
|
|
||||||
|
script.append(buildCharset(column,type)).append(" ");
|
||||||
|
|
||||||
|
script.append(buildCollation(column,type)).append(" ");
|
||||||
|
|
||||||
script.append(buildNullable(column,type)).append(" ");
|
script.append(buildNullable(column,type)).append(" ");
|
||||||
|
|
||||||
script.append(buildDefaultValue(column,type)).append(" ");
|
script.append(buildDefaultValue(column,type)).append(" ");
|
||||||
@ -162,6 +166,20 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
|||||||
return script.toString();
|
return script.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildCharset(TableColumn column, MysqlColumnTypeEnum type) {
|
||||||
|
if(!type.getColumnType().isSupportCharset() || StringUtils.isEmpty(column.getCharSetName())){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return StringUtils.join("CHARACTER SET ",column.getCharSetName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildCollation(TableColumn column, MysqlColumnTypeEnum type) {
|
||||||
|
if(!type.getColumnType().isSupportCollation() || StringUtils.isEmpty(column.getCollationName())){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return StringUtils.join("COLLATE ",column.getCollationName());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String buildModifyColumn(TableColumn tableColumn) {
|
public String buildModifyColumn(TableColumn tableColumn) {
|
||||||
|
|
||||||
@ -218,7 +236,7 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(Arrays.asList(DATETIME,TIMESTAMP).contains(type)){
|
if(Arrays.asList(DATETIME,TIMESTAMP).contains(type)){
|
||||||
if("CURRENT_TIMESTAMP".equalsIgnoreCase(column.getDefaultValue())){
|
if("CURRENT_TIMESTAMP".equalsIgnoreCase(column.getDefaultValue().trim())){
|
||||||
return StringUtils.join("DEFAULT ",column.getDefaultValue());
|
return StringUtils.join("DEFAULT ",column.getDefaultValue());
|
||||||
}
|
}
|
||||||
return StringUtils.join("DEFAULT '",column.getDefaultValue(),"'");
|
return StringUtils.join("DEFAULT '",column.getDefaultValue(),"'");
|
||||||
@ -282,8 +300,8 @@ public enum MysqlColumnTypeEnum implements ColumnBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(Arrays.asList(SET,ENUM).contains(type)){
|
if(Arrays.asList(SET,ENUM).contains(type)){
|
||||||
if(!StringUtils.isEmpty( column.getDefaultValue())){
|
if(!StringUtils.isEmpty( column.getValue())){
|
||||||
return StringUtils.join(columnType,"(",column.getDefaultValue(),")");
|
return StringUtils.join(columnType,"(",column.getValue(),")");
|
||||||
}
|
}
|
||||||
//List<String> enumList = column.
|
//List<String> enumList = column.
|
||||||
}
|
}
|
||||||
|
@ -17,4 +17,6 @@ public class ColumnType {
|
|||||||
private boolean supportComments;
|
private boolean supportComments;
|
||||||
private boolean supportDefaultValue;
|
private boolean supportDefaultValue;
|
||||||
private boolean supportExtent;
|
private boolean supportExtent;
|
||||||
|
|
||||||
|
private boolean supportValue;
|
||||||
}
|
}
|
||||||
|
@ -165,4 +165,7 @@ public class TableColumn {
|
|||||||
private String charSetName;
|
private String charSetName;
|
||||||
|
|
||||||
private String collationName;
|
private String collationName;
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user