1、DDL语句解析-工具类
1、需要引入fastsql依赖
<dependency>
<groupId>com.alibaba.fastsql</groupId>
<artifactId>fastsql</artifactId>
<version>2.0.0_preview_584</version>
</dependency>
2、工具类-Demo:
public static String formatDDL(String ddl, String storeType) {
if (StringUtils.isBlank(ddl) || StringUtils.isBlank(storeType)) {
return null;
}
ddl = ddl.replace("%%", "'");
if (DataSourceTypeEnum.RDS.getName().equals(storeType.toLowerCase())) {
return SQLUtils.format(ddl, JdbcConstants.MYSQL).replace("USING BTREE", "").replace(
"using btree", "").replace("USING btree", "").replace("UNIQUE", "UNIQUE KEY");
}
if (DataSourceTypeEnum.RDSPG.getName().equals(storeType.toLowerCase())) {
return SQLUtils.format(ddl, JdbcConstants.POSTGRESQL);
}
if (DataSourceTypeEnum.ODPS.getName().equals(storeType.toLowerCase())) {
return SQLUtils.format(ddl, JdbcConstants.ODPS);
}
if (DataSourceTypeEnum.HIVE.getName().equals(storeType.toLowerCase())) {
return SQLUtils.format(ddl, JdbcConstants.HIVE);
}
if (DataSourceTypeEnum.HBASE_PHOENIX.getName().equals(storeType.toLowerCase())) {
return SQLUtils.format(ddl, JdbcConstants.PHOENIX);
}
return ddl;
}