| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | package org.jeecg.modules.online.config.service.impl;import org.apache.commons.lang.StringUtils;import org.jeecg.modules.online.config.exception.DBException;import org.jeecg.modules.online.config.service.DbTableHandleI;import org.jeecg.modules.online.config.util.ColumnMeta;public class PgTableHandle implements DbTableHandleI {    public PgTableHandle() {    }    public String getAddColumnSql(ColumnMeta columnMeta) {        return " ADD COLUMN " + this.a(columnMeta) + ";";    }    public String getReNameFieldName(ColumnMeta columnMeta) {        return " RENAME  COLUMN  " + columnMeta.getOldColumnName() + " to " + columnMeta.getColumnName() + ";";    }    public String getUpdateColumnSql(ColumnMeta cgformcolumnMeta, ColumnMeta datacolumnMeta) throws DBException {        return "  ALTER  COLUMN   " + this.a(cgformcolumnMeta, datacolumnMeta) + ";";    }    public String getSpecialHandle(ColumnMeta cgformcolumnMeta, ColumnMeta datacolumnMeta) {        return "  ALTER  COLUMN   " + this.b(cgformcolumnMeta, datacolumnMeta) + ";";    }    public String getMatchClassTypeByDataType(String dataType, int digits) {        String var3 = "";        if (dataType.equalsIgnoreCase("varchar")) {            var3 = "string";        } else if (dataType.equalsIgnoreCase("double")) {            var3 = "double";        } else if (dataType.contains("int")) {            var3 = "int";        } else if (dataType.equalsIgnoreCase("Date")) {            var3 = "date";        } else if (dataType.equalsIgnoreCase("timestamp")) {            var3 = "date";        } else if (dataType.equalsIgnoreCase("bytea")) {            var3 = "blob";        } else if (dataType.equalsIgnoreCase("text")) {            var3 = "text";        } else if (dataType.equalsIgnoreCase("decimal")) {            var3 = "bigdecimal";        } else if (dataType.equalsIgnoreCase("numeric")) {            var3 = "bigdecimal";        }        return var3;    }    public String dropTableSQL(String tableName) {        return " DROP TABLE  " + tableName + " ;";    }    public String getDropColumnSql(String fieldName) {        return " DROP COLUMN " + fieldName + ";";    }    private String a(ColumnMeta oldColumn, ColumnMeta var2) throws DBException {        String var3 = "";        if (oldColumn.getColunmType().equalsIgnoreCase("string")) {            var3 = oldColumn.getColumnName() + "  type character varying(" + oldColumn.getColumnSize() + ") ";        } else if (oldColumn.getColunmType().equalsIgnoreCase("date")) {            var3 = oldColumn.getColumnName() + "  type timestamp ";        } else if (oldColumn.getColunmType().equalsIgnoreCase("int")) {            var3 = oldColumn.getColumnName() + " type int4 ";        } else if (oldColumn.getColunmType().equalsIgnoreCase("double")) {            var3 = oldColumn.getColumnName() + " type  numeric(" + oldColumn.getColumnSize() + "," + oldColumn.getDecimalDigits() + ") ";        } else if (oldColumn.getColunmType().equalsIgnoreCase("BigDecimal")) {            var3 = oldColumn.getColumnName() + " type  decimal(" + oldColumn.getColumnSize() + "," + oldColumn.getDecimalDigits() + ") ";        } else if (oldColumn.getColunmType().equalsIgnoreCase("text")) {            var3 = oldColumn.getColumnName() + " text ";        } else if (oldColumn.getColunmType().equalsIgnoreCase("blob")) {            throw new DBException("blob类型不可修改");        }        return var3;    }    private String b(ColumnMeta var1, ColumnMeta var2) {        String var3 = "";        if (!var1.a(var2)) {            if (var1.getColunmType().equalsIgnoreCase("string")) {                var3 = var1.getColumnName();                var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");            } else if (var1.getColunmType().equalsIgnoreCase("date")) {                var3 = var1.getColumnName();                var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");            } else if (var1.getColunmType().equalsIgnoreCase("int")) {                var3 = var1.getColumnName();                var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");            } else if (var1.getColunmType().equalsIgnoreCase("double")) {                var3 = var1.getColumnName();                var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");            } else if (var1.getColunmType().equalsIgnoreCase("bigdecimal")) {                var3 = var1.getColumnName();                var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");            } else if (var1.getColunmType().equalsIgnoreCase("text")) {                var3 = var1.getColumnName();                var3 = var3 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " SET DEFAULT " + var1.getFieldDefault() : " DROP DEFAULT");            }        }        return var3;    }    private String a(ColumnMeta var1) {        String var2 = "";        if (var1.getColunmType().equalsIgnoreCase("string")) {            var2 = var1.getColumnName() + " character varying(" + var1.getColumnSize() + ") ";        } else if (var1.getColunmType().equalsIgnoreCase("date")) {            var2 = var1.getColumnName() + " timestamp ";        } else if (var1.getColunmType().equalsIgnoreCase("int")) {            var2 = var1.getColumnName() + " int4";        } else if (var1.getColunmType().equalsIgnoreCase("double")) {            var2 = var1.getColumnName() + " numeric(" + var1.getColumnSize() + "," + var1.getDecimalDigits() + ") ";        } else if (var1.getColunmType().equalsIgnoreCase("bigdecimal")) {            var2 = var1.getColumnName() + " decimal(" + var1.getColumnSize() + "," + var1.getDecimalDigits() + ") ";        } else if (var1.getColunmType().equalsIgnoreCase("blob")) {            var2 = var1.getColumnName() + " bytea(" + var1.getColumnSize() + ") ";        } else if (var1.getColunmType().equalsIgnoreCase("text")) {            var2 = var1.getColumnName() + " text ";        }        var2 = var2 + (StringUtils.isNotEmpty(var1.getFieldDefault()) ? " DEFAULT " + var1.getFieldDefault() : " ");        return var2;    }    private String b(ColumnMeta var1) {        String var2 = "";        if (var1.getColunmType().equalsIgnoreCase("string")) {            var2 = var1.getColumnName() + " character varying(" + var1.getColumnSize() + ") ";        } else if (var1.getColunmType().equalsIgnoreCase("date")) {            var2 = var1.getColumnName() + " datetime ";        } else if (var1.getColunmType().equalsIgnoreCase("int")) {            var2 = var1.getColumnName() + " int(" + var1.getColumnSize() + ") ";        } else if (var1.getColunmType().equalsIgnoreCase("double")) {            var2 = var1.getColumnName() + " numeric(" + var1.getColumnSize() + "," + var1.getDecimalDigits() + ") ";        }        return var2;    }    public String getCommentSql(ColumnMeta columnMeta) {        return "COMMENT ON COLUMN " + columnMeta.getTableName() + "." + columnMeta.getColumnName() + " IS '" + columnMeta.getComment() + "'";    }    public String dropIndexs(String indexName, String tableName) {        return "DROP INDEX " + indexName;    }    public String countIndex(String indexName, String tableName) {        return "SELECT count(*) FROM pg_indexes WHERE indexname = '" + indexName + "' and tablename = '" + tableName + "'";    }}
 |