You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
10 KiB

6 years ago
package xyz.wbsite.dbtool.javafx.po;
import xyz.wbsite.dbtool.javafx.enumeration.DataBase;
import xyz.wbsite.dbtool.javafx.enumeration.FieldType;
public class MySqlDBmapper extends AbstractDBmapper {
public MySqlDBmapper(DataBase mDataBase) {
super(mDataBase);
}
@Override
public String getDataBaseType(FieldType type, int lenght) {
if (FieldType.Boolean.name().equals(type.name())) {
return "BIT";
} else if (FieldType.Byte.name().equals(type.name())) {
return "TINYINT";
} else if (FieldType.Short.name().equals(type.name())) {
return "SMALLINT";
} else if (FieldType.Integer.name().equals(type.name())) {
return "INTEGER";
} else if (FieldType.Long.name().equals(type.name())) {
return "NUMERIC";
} else if (FieldType.Float.name().equals(type.name())) {
return "REAL";
} else if (FieldType.Double.name().equals(type.name())) {
return "FLOAT";
} else if (FieldType.Character.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_1.name().equals(type.name())) {
return "CAHR";
} else if (FieldType.String_10.name().equals(type.name())) {
return "CAHR";
} else if (FieldType.String_var.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var50.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var100.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var255.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var2500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.Date.name().equals(type.name())) {
return "DATE";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else {
return "";
}
}
@Override
public String getFieldSql(Field field) {
StringBuffer sb = new StringBuffer("");
sb.append("`").append(field.getFieldName()).append("` ");
FieldType type = field.getFieldType();
if (FieldType.Boolean.name().equals(type.name())) {
sb.append("TINYINT(1)");
6 years ago
} else if (FieldType.Enum.name().equals(type.name())) {
sb.append("VARCHAR(50)");
6 years ago
} else if (FieldType.Byte.name().equals(type.name())) {
sb.append("TINYINT(3)");
} else if (FieldType.Short.name().equals(type.name())) {
sb.append("SMALLINT(5)");
} else if (FieldType.Integer.name().equals(type.name())) {
sb.append("INTEGER(10)");
} else if (FieldType.Long.name().equals(type.name())) {
sb.append("BIGINT(20)");
} else if (FieldType.Float.name().equals(type.name())) {
sb.append("FLOAT");
} else if (FieldType.Double.name().equals(type.name())) {
sb.append("DOUBLE");
} else if (FieldType.Date.name().equals(type.name())) {
sb.append("DATETIME");
} else if (FieldType.Bytes.name().equals(type.name())) {
sb.append("BLOB");
} else if (FieldType.String_1.name().equals(type.name())) {
sb.append("CHAR(1)");
} else if (FieldType.String_10.name().equals(type.name())) {
sb.append("CHAR(10)");
} else if (FieldType.String_var.name().equals(type.name())) {
Integer fieldLength = field.getFieldLength();
sb.append("VARCHAR(" + fieldLength + ")");
} else if (FieldType.String_var50.name().equals(type.name())) {
sb.append("VARCHAR(50)");
} else if (FieldType.String_var100.name().equals(type.name())) {
sb.append("VARCHAR(100)");
} else if (FieldType.String_var255.name().equals(type.name())) {
sb.append("VARCHAR(250)");
} else if (FieldType.String_var500.name().equals(type.name())) {
sb.append("VARCHAR(500)");
} else if (FieldType.String_var2500.name().equals(type.name())) {
sb.append("VARCHAR(2500)");
} else if (FieldType.String_var4000.name().equals(type.name())) {
sb.append("VARCHAR(4000)");
} else if (FieldType.String_super.name().equals(type.name())) {
sb.append("TEXT");
}
if (!field.getIsSystem() && field.getIsMust() && (field.getDefaultValue() == null || field.getDefaultValue().toUpperCase().equals("NULL"))) {
sb.append(" NOT NULL");
} else if (!field.getIsSystem() && field.getIsMust() && field.getDefaultValue() != null && !field.getDefaultValue().toUpperCase().equals("NULL")) {
if (field.getFieldType().name().contains("String")) {//默认字符
sb.append(" NOT NULL").append(" DEFAULT '" + field.getDefaultValue() + "'");
} else {//不是字符就是数字,目前只考虑两张情况
sb.append(" NOT NULL").append(" DEFAULT " + field.getDefaultValue() + "");
}
} else if (field.getIsSystem() && field.getFieldName().equals("ID")) {
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("ROW_VERSION")) {
sb.append(" NOT NULL").append(" DEFAULT 0");
} else if (field.getIsSystem() && field.getFieldName().equals("IS_DELETED")) {
sb.append(" NOT NULL").append(" DEFAULT 0");
} else if (field.getIsSystem() && field.getFieldName().equals("CREATE_BY")) {
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("CREATE_TIME")) {
sb.append(" NOT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("LAST_UPDATE_BY")) {
sb.append(" DEFAULT NULL");
} else if (field.getIsSystem() && field.getFieldName().equals("LAST_UPDATE_TIME")) {
sb.append(" DEFAULT NULL");
}
if (field.getFieldComment() != null) {
sb.append(" COMMENT '" + field.getFieldComment() + "'");
}
return sb.toString();
}
@Override
DataBase getDataBase() {
return super.getDataBase();
}
@Override
public String getDataBaseType(FieldType type) {
if (FieldType.Boolean.name().equals(type.name())) {
return "TINYINT";
} else if (FieldType.Byte.name().equals(type.name())) {
return "TINYINT";
} else if (FieldType.Short.name().equals(type.name())) {
return "SMALLINT";
} else if (FieldType.Integer.name().equals(type.name())) {
return "INTEGER";
} else if (FieldType.Long.name().equals(type.name())) {
return "NUMERIC";
} else if (FieldType.Float.name().equals(type.name())) {
return "REAL";
} else if (FieldType.Double.name().equals(type.name())) {
return "FLOAT";
} else if (FieldType.Character.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_1.name().equals(type.name())) {
return "CHAR";
} else if (FieldType.String_10.name().equals(type.name())) {
return "CHAR";
} else if (FieldType.String_var.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var50.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var100.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var255.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var2500.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.String_var4000.name().equals(type.name())) {
return "VARCHAR";
} else if (FieldType.Date.name().equals(type.name())) {
return "DATETIME";
} else if (FieldType.Bytes.name().equals(type.name())) {
return "BLOB";
} else {
return "";
}
}
@Override
public FieldType getType(String type, int lenght, int precision, int scale) {
if ("bigint".equals(type)) {
return FieldType.Long;
} else if ("varchar".equals(type) && lenght == 50) {
return FieldType.String_var50;
} else if ("varchar".equals(type) && lenght == 100) {
return FieldType.String_var100;
} else if ("varchar".equals(type) && lenght == 255) {
return FieldType.String_var255;
} else if ("varchar".equals(type) && lenght == 500) {
return FieldType.String_var500;
} else if ("varchar".equals(type) && lenght == 2500) {
return FieldType.String_var2500;
} else if ("varchar".equals(type) && lenght == 4000) {
return FieldType.String_var4000;
} else if ("varchar".equals(type)) {
return FieldType.String_var;
} else if ("date".equals(type)) {
return FieldType.Date;
} else if ("datetime".equals(type)) {
return FieldType.Date;
} else if ("timestamp".equals(type)) {
return FieldType.Date;
} else if ("char".equals(type) && lenght == 1) {
return FieldType.String_1;
} else if ("char".equals(type) && lenght == 10) {
return FieldType.String_10;
} else if ("char".equals(type)) {
return FieldType.String_var;
} else if ("tinyint".equals(type)) {
return FieldType.Integer;
} else if ("smallint".equals(type)) {
return FieldType.Integer;
} else if ("mediumint".equals(type)) {
return FieldType.Integer;
} else if ("int".equals(type)) {
return FieldType.Integer;
} else if ("bigint".equals(type)) {
return FieldType.Long;
} else if ("float".equals(type)) {
return FieldType.Float;
} else if ("double".equals(type)) {
return FieldType.Double;
}
return FieldType.String_var50;
}
}

Powered by TurnKey Linux.