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.
144 lines
6.1 KiB
144 lines
6.1 KiB
package xyz.wbsite.dbtool.javafx.po;
|
|
|
|
import xyz.wbsite.dbtool.javafx.enums.DataBase;
|
|
import xyz.wbsite.dbtool.javafx.enums.FieldType;
|
|
|
|
public class SQLiteDBmapper extends AbstractDBmapper {
|
|
|
|
public SQLiteDBmapper(DataBase mDataBase) {
|
|
super(mDataBase);
|
|
}
|
|
|
|
@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("BOOLEAN");
|
|
} else if (FieldType.Byte.name().equals(type.name())) {
|
|
sb.append("TINYINT");
|
|
} else if (FieldType.Bytes.name().equals(type.name())) {
|
|
sb.append("BLOB");
|
|
} else if (FieldType.Character.name().equals(type.name())) {
|
|
sb.append("CHARACTER(1)");
|
|
} else if (FieldType.Short.name().equals(type.name())) {
|
|
sb.append("SMALLINT");
|
|
} else if (FieldType.Integer.name().equals(type.name())) {
|
|
sb.append("MEDIUMINT");
|
|
} else if (FieldType.Long.name().equals(type.name())) {
|
|
sb.append("BIGINT");
|
|
} 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.BigDecimal.name().equals(type.name())) {
|
|
sb.append("INTEGER");
|
|
} else if (FieldType.Dict.name().equals(type.name())) {
|
|
Integer fieldLength = field.getFieldLength();
|
|
sb.append("VARCHAR(" + fieldLength + ")");
|
|
} 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("TEXT");
|
|
} else if (FieldType.String_var4000.name().equals(type.name())) {
|
|
sb.append("TEXT");
|
|
} 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.getFieldName().equals("ID")) {
|
|
sb.append(" PRIMARY KEY NOT NULL");
|
|
} else if (field.getIsSystem() && field.getFieldName().equals("ROW_VERSION")) {
|
|
sb.append(" NOT NULL");
|
|
} else if (field.getIsSystem() && field.getFieldName().equals("IS_DELETED")) {
|
|
sb.append(" NOT NULL");
|
|
} 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");
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
@Override
|
|
DataBase getDataBase() {
|
|
return super.getDataBase();
|
|
}
|
|
|
|
@Override
|
|
public String getDataBaseType(FieldType type) {
|
|
if (FieldType.Boolean.name().equals(type.name())) {
|
|
return "BOOLEAN";
|
|
} else if (FieldType.Byte.name().equals(type.name())) {
|
|
return "TINYINT";
|
|
} else if (FieldType.Bytes.name().equals(type.name())) {
|
|
return "BLOB";
|
|
} else if (FieldType.Character.name().equals(type.name())) {
|
|
return "VARCHAR";
|
|
} else if (FieldType.Short.name().equals(type.name())) {
|
|
return "SMALLINT";
|
|
} else if (FieldType.Integer.name().equals(type.name())) {
|
|
return "MEDIUMINT";
|
|
} else if (FieldType.Long.name().equals(type.name())) {
|
|
return "BIGINT";
|
|
} else if (FieldType.Float.name().equals(type.name())) {
|
|
return "FLOAT";
|
|
} else if (FieldType.Double.name().equals(type.name())) {
|
|
return "DOUBLE";
|
|
} else if (FieldType.Date.name().equals(type.name())) {
|
|
return "DATETIME";
|
|
} else if (FieldType.BigDecimal.name().equals(type.name())) {
|
|
return "INTEGER";
|
|
} else if (FieldType.Dict.name().equals(type.name())) {
|
|
return "CHARACTER";
|
|
} else if (FieldType.String_1.name().equals(type.name())) {
|
|
return "CHARACTER";
|
|
} else if (FieldType.String_10.name().equals(type.name())) {
|
|
return "CHARACTER";
|
|
} 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 "TEXT";
|
|
} else if (FieldType.String_var4000.name().equals(type.name())) {
|
|
return "TEXT";
|
|
} else if (FieldType.String_super.name().equals(type.name())) {
|
|
return "TEXT";
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public FieldType getType(String type, int length, int precision, int scale) {
|
|
return FieldType.String_var50;
|
|
}
|
|
}
|