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.Dict.name().equals(type.name())) { sb.append("VARCHAR(10)"); } else if (FieldType.BigDecimal.name().equals(type.name())) { sb.append("INTEGER"); } 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; } }