156 lines
3.8 KiB
Java
156 lines
3.8 KiB
Java
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();
|
|
}
|
|
}
|