3.2.1 SQL 解析
在 java 中的实现一次 SQL 解析,获取 AST 并从中提取出表名。
首先引入依赖:
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.7</version>
</dependency>
在 IDEA 中安装 ANTLR4 插件;
示例 1,解析 SQL 表名。
使用插件将描述 MySQL 语法的 G4 文件,转换为 java 类(G4 文件忽略)。
类的结构如下:
其中 SqlBase 是 G4 文件名转换而来,SqlBaseLexer 的作用是词法解析,SqlBaseParser 是语法解析,由它生成 AST 对象。HelloVisitor 和 HelloListener:进行抽象语法树的遍历,一般都会提供这两种模式,Visitor 访问者模式和 Listener 监听器模式。如果想自己定义遍历的逻辑,可以继承这两个接口,实现对应的方法。
读取表名过程,是重写 SqlBase