📄 entitysqlcreator.java
字号:
package com.cownew.PIS.base.sqlClient.bizLayer;
import java.util.List;
import com.cownew.PIS.framework.common.metaDataMgr.DataTypeEnum;
import com.cownew.PIS.framework.common.metaDataMgr.EntityFieldModelInfo;
import com.cownew.PIS.framework.common.metaDataMgr.EntityModelInfo;
import com.cownew.PIS.framework.common.metaDataMgr.LinkTypeEnum;
import com.cownew.PIS.framework.common.metaDataMgr.MetaDataConstant;
import com.cownew.ctk.common.StringUtils;
/**
* 建库脚本生成器
*/
public class EntitySQLCreator
{
/**
* 生成实体的建库脚本
* @param eInfo
* @return
*/
public static String generateCreateSQL(EntityModelInfo eInfo)
{
StringBuffer sql = new StringBuffer();
String pk = eInfo.getPrimaryKey();
String pkDBField = null;
sql.append("Create Table ").append(eInfo.getTableName()).append("(");
List fieldList = eInfo.getFields();
for (int i = 0, n = fieldList.size(); i < n; i++)
{
EntityFieldModelInfo fInfo = (EntityFieldModelInfo) fieldList
.get(i);
//one to many字段不生成数据库字段
if (fInfo.isLinkProperty()
&& fInfo.getLinkType() == LinkTypeEnum.ONETOMANY)
{
continue;
}
sql.append(getFieldDef(fInfo)).append(",");
if (pk.equals(fInfo.getDbFieldName()))
{
pkDBField = fInfo.getDbFieldName();
}
}
if (StringUtils.isEmpty(pkDBField))
{
pkDBField = MetaDataConstant.PKFIELDNAME;
}
sql.append("primary key(").append(pkDBField).append("))");
return sql.toString();
}
private static String getFieldDef(EntityFieldModelInfo fInfo)
{
DataTypeEnum dataType = fInfo.getDataType();
String fName = fInfo.getDbFieldName();
int len = fInfo.getLength();
StringBuffer sb = new StringBuffer();
if (dataType == DataTypeEnum.BIGDECIMAL)
{
sb.append(fName);
sb.append(" Numeric(28,10)");
} else if (dataType == DataTypeEnum.BLOB)
{
sb.append(fName);
sb.append(" Blob(").append(len).append(")");
} else if (dataType == DataTypeEnum.BOOLEAN)
{
sb.append(fName);
sb.append(" boolean");
} else if (dataType == DataTypeEnum.CLOB)
{
sb.append(fName);
sb.append(" Clob(").append(len).append(")");
} else if (dataType == DataTypeEnum.DATE)
{
sb.append(fName);
sb.append(" Date");
} else if (dataType == DataTypeEnum.INTEGER)
{
sb.append(fName);
sb.append(" Int");
} else if (dataType == DataTypeEnum.STRING)
{
sb.append(fName);
sb.append(" Varchar(").append(len).append(")");
} else
{
throw new IllegalArgumentException(dataType.getName());
}
if (fInfo.isAllowNull())
{
sb.append(" null");
} else
{
sb.append(" not null");
}
return sb.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -