我正在使用来自此处的mysql语法:https://github.com/antlr/grammars-v4/tree/master/mysql,并使用Maven生成了Java文件。现在,我正在尝试解析查询,但我不知道该如何做。
我基本上想要“获取”查询的所有不同组件,例如所选的列列表、where条件、子查询、表名等等。但我不知道该如何继续。目前为止,我已经编写了以下代码。请问是否能提供一个简单的示例,以便我可以理解用法并承担更复杂的任务?这是我的代码:
使用上述代码,我得到了以下输出结果:
感谢您的帮助 :)
我基本上想要“获取”查询的所有不同组件,例如所选的列列表、where条件、子查询、表名等等。但我不知道该如何继续。目前为止,我已经编写了以下代码。请问是否能提供一个简单的示例,以便我可以理解用法并承担更复杂的任务?这是我的代码:
public static void main( String[] args )
{
String sql="select cust_name from database..table where cust_name like 'Kash%'";
ANTLRInputStream input = new ANTLRInputStream(sql);
MySqlLexer mySqlLexer = new MySqlLexer(input);
CommonTokenStream tokens = new CommonTokenStream(mySqlLexer);
MySqlParser mySqlParser = new MySqlParser(tokens);
ParseTree tree = mySqlParser.dmlStatement();
ParseTreeWalker walker = new ParseTreeWalker();
MySqlParserBaseListener listener=new MySqlParserBaseListener();
ParseTreeWalker.DEFAULT.walk(listener, tree);
System.out.println(?);
}
使用上述代码,我得到了以下输出结果:
line 1:11 no viable alternative at input '_'
(dmlStatement _ . . _ 'Kash%')
感谢您的帮助 :)