那些开源的都不太靠谱,同事推荐这个druid解析sql。试了一下确实给力。
打包方法:
git clone https://github.com/alibaba/druid.git
mvn install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true

会安装到.m2目录,copy一个项目用
target/druid-1.0.27-SNAPSHOT-sources.jar

示例代码:

import java.util.*;

import com.alibaba.druid.stat.TableStat;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor;
import py4j.GatewayServer;

public class SQLParser {
public static List get_tables(String sql){

MySqlStatementParser parser = new MySqlStatementParser(sql);
List statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);

MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor);
Map result = visitor.getTables();
System.out.println("Tables : " + result);

List list = new ArrayList<>();
for ( TableStat.Name name : result.keySet() ) {
System.out.println( name );
list.add(name.getName());
}
return list;

}

public static void main(String[] args){
GatewayServer gatewayServer = new GatewayServer(new SQLParser());
gatewayServer.start();
System.out.println("Gateway Server Started");

}
}

打包命令:

javac -cp .:./py4j0.10.4.jar:./druid-1.0.27-SNAPSHOT.jar:$CLASSPATH SQLParser.java
java -cp .:./py4j0.10.4.jar:./druid-1.0.27-SNAPSHOT.jar:$CLASSPATH SQLParser

上一篇:
下一篇:

相关文章:

Categories: 博客记录

0 Responses so far.

Leave a Reply