package com.yuwenzhi.utils;
import javax.sound.sampled.Line;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @version 1.0
* @description:
* @author: 宇文智
* @date 2022/9/27 14:42
*/
public class GetSQLFileSourceTableName {
public static HashMap<String, HashSet<String>> getTabNnMap(String path) throws IOException {
File file = new File(path);
String reg = "from\\s+[0-9a-z_.]+|join\\s+[0-9a-z.]+";
Matcher matcher = null;
Pattern compile = Pattern.compile(reg);
HashMap<String, HashSet<String>> map = new HashMap<>();
for (File item_f : file.listFiles()) {
HashSet<String> hSet = new HashSet<>();
String usage = "";
List<String> lines = Files.readAllLines(Paths.get(item_f.getAbsolutePath()), StandardCharsets.UTF_8);
for (String line : lines) {
//if (line.contains("功能概述~")) usage = line;
matcher = compile.matcher(line.toLowerCase());
if (matcher.find())
hSet.add(matcher.group(0).toLowerCase().replaceAll("from\\s+", "").replaceAll(" join \\s +", ""));
}
map.put(item_f.getName() + usage, hSet);
}
return map;
}
}
抽取sql文件中的源表【from,join的表】
最新推荐文章于 2023-02-20 11:00:46 发布