1、DDL语句解析-工具类

  1. 1、需要引入fastsql依赖
  2. <dependency>
  3. <groupId>com.alibaba.fastsql</groupId>
  4. <artifactId>fastsql</artifactId>
  5. <version>2.0.0_preview_584</version>
  6. </dependency>
  7. 2、工具类-Demo
  8. public static String formatDDL(String ddl, String storeType) {
  9. if (StringUtils.isBlank(ddl) || StringUtils.isBlank(storeType)) {
  10. return null;
  11. }
  12. ddl = ddl.replace("%%", "'");
  13. if (DataSourceTypeEnum.RDS.getName().equals(storeType.toLowerCase())) {
  14. return SQLUtils.format(ddl, JdbcConstants.MYSQL).replace("USING BTREE", "").replace(
  15. "using btree", "").replace("USING btree", "").replace("UNIQUE", "UNIQUE KEY");
  16. }
  17. if (DataSourceTypeEnum.RDSPG.getName().equals(storeType.toLowerCase())) {
  18. return SQLUtils.format(ddl, JdbcConstants.POSTGRESQL);
  19. }
  20. if (DataSourceTypeEnum.ODPS.getName().equals(storeType.toLowerCase())) {
  21. return SQLUtils.format(ddl, JdbcConstants.ODPS);
  22. }
  23. if (DataSourceTypeEnum.HIVE.getName().equals(storeType.toLowerCase())) {
  24. return SQLUtils.format(ddl, JdbcConstants.HIVE);
  25. }
  26. if (DataSourceTypeEnum.HBASE_PHOENIX.getName().equals(storeType.toLowerCase())) {
  27. return SQLUtils.format(ddl, JdbcConstants.PHOENIX);
  28. }
  29. return ddl;
  30. }