ysn2233
V2EX  ›  问与答

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

  •  
  •   ysn2233 · Dec 21, 2022 · 2151 views
    This topic created in 1270 days ago, the information mentioned may be changed or developed.

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

    4 replies    2022-12-21 16:14:35 +08:00
    theOneMe
        1
    theOneMe  
       Dec 21, 2022
    用 antlr 可以做,而且可以参考 hive 中写的 g4 文件
    zvvvvv
        2
    zvvvvv  
       Dec 21, 2022
    可以试试 calcite ,自己添加解析规则
    hidemyself
        3
    hidemyself  
       Dec 21, 2022
    ANTLR,官方的 example 中好像就有解析 SQL 的 g4 ,自己写也可以,就是学习成本稍微有点高
    5200721
        4
    5200721  
       Dec 21, 2022 via Android
    druid 带有解析工具,SqlUtils.parseStatements(),但是最近使用,解析 HQL 经常出现奇怪的问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2768 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:28 · PVG 10:28 · LAX 19:28 · JFK 22:28
    ♥ Do have faith in what you're doing.