package com.vci.ubcs.ddl.processor.dll;
|
|
import com.vci.ubcs.ddl.mapper.DllMapper;
|
import com.vci.ubcs.omd.vo.OmdBtmTypeAttributeVO;
|
import org.apache.commons.lang3.StringUtils;
|
|
import java.util.List;
|
|
/**
|
* Description:DLL的处理接口
|
*
|
* @author LiHang
|
* @date 2023/4/24
|
*/
|
public abstract class DllMapperProcessor implements DllBehavior {
|
|
private DllMapper mapper;
|
|
public DllMapperProcessor(DllMapper mapper) {
|
this.mapper = mapper;
|
}
|
|
public abstract boolean support(String url);
|
|
public int createViewBySql(String viewCreateSql) {
|
return mapper.createViewBySql(viewCreateSql);
|
}
|
|
|
public int createTableBySql(String tableName, String attributeSql) {
|
return mapper.createTableBySql(tableName, attributeSql);
|
}
|
|
|
public int commentTable(String tableName, String comment) {
|
return mapper.commentTable(tableName, comment);
|
}
|
|
|
public int commentColumnTable(String tableName, String columnName, String comment) {
|
return mapper.commentColumnTable(tableName, columnName, comment);
|
}
|
|
|
public int modifyTableBySql(String tableName, String attributeSql) {
|
return mapper.modifyTableBySql(tableName, attributeSql);
|
}
|
|
|
public int addColumn2TableBySql(String tableName, String attributeSql) {
|
return mapper.addColumn2TableBySql(tableName, attributeSql);
|
}
|
|
|
public int dropTable(String tableName) {
|
return mapper.dropTable(tableName);
|
}
|
|
|
public int checkTableExist(String tableName) {
|
return mapper.checkTableExist(tableName);
|
}
|
|
|
public int countAll(String tableName) {
|
return mapper.countAll(tableName);
|
}
|
|
/**
|
* 处理整数类型的sql转换
|
*
|
* @param attributeVO 属性
|
* @return sql
|
*/
|
@Override
|
public String dealNumberCreateSql(OmdBtmTypeAttributeVO attributeVO) {
|
StringBuilder snb = new StringBuilder().append(NUMBER + SPACE);
|
dealDefaultAndNull(attributeVO);
|
return snb.toString();
|
}
|
|
/**
|
* 调用处理默认值和非空
|
*
|
* @param attributeVO 属性
|
* @return 执行结果
|
*/
|
@Override
|
public String dealDefaultAndNull(OmdBtmTypeAttributeVO attributeVO) {
|
String value = "";
|
if (StringUtils.isNotBlank(attributeVO.getDefaultValue())) {
|
value += dealDefaultValue(attributeVO.getDefaultValue());
|
}
|
|
if (!attributeVO.isNullableFlag()){
|
value += dealNullableSql(attributeVO);
|
}
|
return value;
|
}
|
|
/**
|
* 处理默认值
|
*
|
* @return sql
|
*/
|
@Override
|
public String dealDefaultValue(String defualValule) {
|
return DEFAULT + SPACE + defualValule + SPACE;
|
}
|
|
/**
|
* 处理浮点数类型的sql转换
|
*
|
* @param attributeVO 属性
|
* @return sql
|
*/
|
@Override
|
public String dealDoubleCreateSql(OmdBtmTypeAttributeVO attributeVO) {
|
Integer length = attributeVO.getPrecisionLength();
|
if(length == null || length == 0){
|
length = 20;
|
}
|
Integer scaleLength = attributeVO.getScaleLength();
|
if(scaleLength == null){
|
scaleLength = 2;
|
}
|
StringBuilder sb = new StringBuilder().append(NUMBER).append("(").append(String.valueOf(length.intValue()))
|
.append(",").append(String.valueOf(scaleLength.intValue()))
|
.append(")").append(SPACE);
|
sb.append(dealDefaultAndNull(attributeVO));
|
return sb.toString();
|
}
|
|
/**
|
* 处理非空
|
*
|
* @return sql
|
*/
|
@Override
|
public String dealNullableSql(OmdBtmTypeAttributeVO attributeVO) {
|
if (!attributeVO.isNullableFlag()) {
|
return SPACE + "not null" + SPACE;
|
}
|
return "";
|
}
|
|
/**
|
* 处理布尔类型的sql转换
|
*
|
* @param attributeVO 属性
|
* @return sql
|
*/
|
@Override
|
public String dealBooleanCreateSql(OmdBtmTypeAttributeVO attributeVO) {
|
return "VARCHAR (5) " + SPACE + dealDefaultAndNull(attributeVO);
|
}
|
|
/**
|
* 处理日期时间类型的sql转换
|
*
|
* @param attributeVO 属性
|
* @return sql
|
*/
|
@Override
|
public String dealDateTimeCreateSql(OmdBtmTypeAttributeVO attributeVO) {
|
return "DATETIME" + SPACE + dealDefaultAndNull(attributeVO);
|
}
|
|
/**
|
* 处理字符串类型的sql转换
|
*
|
* @param attributeVO 属性
|
* @return sql
|
*/
|
@Override
|
public String dealStringCreateSql(OmdBtmTypeAttributeVO attributeVO) {
|
StringBuilder sb = new StringBuilder();
|
Integer length2 = attributeVO.getAttributeLength();
|
if (length2 == null) {
|
length2 = 250;
|
}
|
sb.append("VARCHAR").append("(").
|
append(String.valueOf(length2.intValue())).append(")").append(SPACE);
|
if (OID.equalsIgnoreCase(attributeVO.getId())) {
|
sb.append(" primary key ");
|
//强制设置OID为主键
|
}
|
sb.append(dealDefaultAndNull(attributeVO));
|
return sb.toString();
|
}
|
}
|