anltr 解析MYSQL
2024-10-20 16:01:55
String sql = "select a as c,b as s,'zhange' F, 1/5 as e from t_order";
final MysqlQueryLexer mySqlLexer = new MysqlQueryLexer(CharStreams.fromString(sql));
final CommonTokenStream commonTokenStream = new CommonTokenStream(mySqlLexer);
final MysqlQueryParser mySqlParser = new MysqlQueryParser(commonTokenStream);
mySqlParser.addParseListener(new MysqlQueryBaseListener());
final MysqlQueryParser.SelectStatementContext selectStatementContext = mySqlParser.selectStatement();
for (ParseTree child : selectStatementContext.children) {
if (child instanceof MysqlQueryParser.SelectElementsContext) {
List<ParseTree> columnElementContextList = ((MysqlQueryParser.SelectElementsContext) child).children;
for (int i = 0; i < columnElementContextList.size(); i++) {
ParseTree tree = columnElementContextList.get(i);
if (tree instanceof MysqlQueryParser.SelectColumnElementContext) {
MysqlQueryParser.SelectColumnElementContext columnElementContext = (MysqlQueryParser.SelectColumnElementContext) tree;
System.out.println(columnElementContext.fullColumnName());
System.out.println(columnElementContext.start.getText() + "----------" + columnElementContext.start.getType());
System.out.println(columnElementContext.stop.getText());
}
}
}
System.out.println(child.getText() + "------" );
}
最新文章
- 2016 Multi-University Training Contest 1 H.Shell Necklace
- Java基础,输入输出
- 简易的GCC图形界面GCCUI
- iOS 获得当前经纬度和城市
- CSS 笔记三(Tables/Box Model/Outline)
- 深入浅出 JavaScript 中的 this
- POJ 1191 棋盘分割
- Android四大组件之BroadcastReceiver
- CH Round #45 能量释放
- ajax的简单操作
- Fedora 下安装codeblocks
- 更新内置flash方法[转]
- spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava
- 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能
- HDU 1724 Ellipse
- GeoServer中使用样式化图层描述符(sld)给WMS加注记
- mysql mpm
- 编译安装Ruby 1.9.3 安装CentOS
- php文章付费阅读系统球料付费阅读系统
- 那些不明不白的$符号设计--Sass和Emmet,变量设计原理相通
热门文章
- STC8H开发(十一): GPIO单线驱动多个DS18B20数字温度计
- 中国程序员容易发错音的单词「GitHub 热点速览 v.22.23」
- CAP 6.1 版本发布通告
- Docker容器固定ip
- Tensor的向量化
- Linux文件查找实现
- Json多层级动态结构数据解析
- go: 如何编写一个正确的udp服务端
- Nacos配置失败(java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all server)
- ArrayList集合存储基本数据类型