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

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;
}
}

Powered by TurnKey Linux.