package com.engine.salary.elog.entity.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; /** * @ClassName: TableColumnBean * @Description 表字段类 * @Author tanghj * @Date 2021/3/12 11:44 */ @ApiModel("表字段类") public class TableColumnBean { @ApiModelProperty("列名") private String columnName; /** * varchar(20) */ @ApiModelProperty("数据类型") private String columnType; @ApiModelProperty("字段类型-字符串") private String dataTypeStr; @ApiModelProperty("字段类型") private DataTypeEnum dataType; @ApiModelProperty("长度") private long fieldLength; @ApiModelProperty("是否为空") private boolean isNullable; @ApiModelProperty("是否为空-字符串") private String isNullableStr; @ApiModelProperty("默认值") private Object columnDefault; @ApiModelProperty("备注") private String columnComment; public String getColumnName() { return columnName; } public void setColumnName(String columnName) { this.columnName = columnName; } public String getColumnType() { return columnType; } public void setColumnType(String columnType) { this.columnType = columnType; } public DataTypeEnum getDataType() { return dataType; } public void setDataType(DataTypeEnum dataType) { this.dataType = dataType; } public long getFieldLength() { return fieldLength; } public void setFieldLength(long fieldLength) { this.fieldLength = fieldLength; } public boolean isNullable() { return isNullable; } public void setNullable(boolean nullable) { isNullable = nullable; } public Object getColumnDefault() { return columnDefault; } public void setColumnDefault(Object columnDefault) { this.columnDefault = columnDefault; } public String getColumnComment() { return columnComment; } public void setColumnComment(String columnComment) { this.columnComment = columnComment; } public String getDataTypeStr() { return dataTypeStr; } public void setDataTypeStr(String dataTypeStr) { this.dataTypeStr = dataTypeStr; } public String getIsNullableStr() { return isNullableStr; } public void setIsNullableStr(String isNullableStr) { this.isNullableStr = isNullableStr; } public boolean equals(TableColumnBean tableColumnBean) { return this.toSql().equals(tableColumnBean.toSql()); } public String toSql() { StringBuilder sb = new StringBuilder(this.columnName.toLowerCase()).append(" "); if (this.dataType == null) { return "类型为空"; } switch (this.dataType) { case BIGINT: case INT: case TEXT: case LONGTEXT: case DATETIME: case FLOAT: case TINYINT: case DOUBLE: sb.append(this.dataType.name().toLowerCase()).append(" "); break; case VARCHAR: sb.append(this.dataType.name().toLowerCase()).append("(").append(this.fieldLength).append(") "); break; case DECIMAL: long length = (this.fieldLength < 0 || this.fieldLength > 38) ? 0 : this.fieldLength; sb.append(this.dataType.name().toLowerCase()).append("(").append(38 - length).append(",").append(length).append(") "); break; default: sb.append("varchar").append("(").append(10).append(") "); } sb.append("comment ").append("'").append(this.columnComment).append("' "); return sb.toString(); } }