请问 JVM 下有没有比较好用的库可以用于解析带可选条件和参数的 SQL?

2022-12-21 11:06:23 +08:00
 ysn2233

类似 Metabase 的语法,SELECT * FROM xxxx WHERE 1=1 [[AND param={{param}}]]这种?

https://github.com/metabase/metabase/blob/master/src/metabase/driver/common/parameters/parse.clj

Metabase 的 Clojure 源码没经验实在是看不懂,类似的不知道有没有开源得到过的验证的库?如果没得话只能自己写解析了就不知道会有多少坑。

1100 次点击
所在节点    问与答
4 条回复
theOneMe
2022-12-21 11:32:22 +08:00
用 antlr 可以做,而且可以参考 hive 中写的 g4 文件
zvvvvv
2022-12-21 13:48:17 +08:00
可以试试 calcite ,自己添加解析规则
hidemyself
2022-12-21 14:00:59 +08:00
ANTLR,官方的 example 中好像就有解析 SQL 的 g4 ,自己写也可以,就是学习成本稍微有点高
5200721
2022-12-21 16:14:35 +08:00
druid 带有解析工具,SqlUtils.parseStatements(),但是最近使用,解析 HQL 经常出现奇怪的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/903875

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX