1、ParseUtils
package com.example.util;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
import com.alibaba.druid.stat.TableStat;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
import static com.alibaba.druid.util.JdbcConstants.*;
@Slf4j
public abstract class ParseUtil {
public static void format(String sql, String dbType) {
String sqlFormat = SQLUtils.format(sql, dbType);
if (sql.equals(sqlFormat)) {
throw new RuntimeException("SQL格式错误");
}
}
public static void checkSymbol(String sql) {
Arrays.stream(sql.toUpperCase().split("DROP|CREATE|INSERT|UPDATE"))
.filter(sqlStr -> !StringUtils.isEmpty(sqlStr))
.filter(sqlStr -> !sqlStr.contains(";"