【问题标题】:SQL Query parser for JavaJava 的 SQL 查询解析器
【发布时间】:2015-09-02 23:34:29
【问题描述】:

我正在寻找用于 MySQL 查询的 SQL 查询解析器。使用它我可以解析查询、修改查询对象并打印回修改后的查询

JSQL Parser 正是我所需要的,但它在转义列值内的单引号时有 2 个主要问题 https://github.com/JSQLParser/JSqlParser/issues/167 https://github.com/JSQLParser/JSqlParser/issues/166

所以我正在寻找可以帮助我完成任务的开源替代方案

我尝试过的 Presto-parser 无法解析更新查询

如果其他人知道任何其他可靠的 SQL 解析库,请告诉我

【问题讨论】:

    标签: java mysql sql-parser jsqlparser


    【解决方案1】:

    关于JSqlParser

    问题 166 已修复。

    不支持单引号的转义,但是使用双单引号可以。因此,有人可以在解析之前使用 '' 替换所有 \'

    编辑: 问题 167 已在 JSqlParser 的实际快照 0.9.5 中修复。

    【讨论】:

      【解决方案2】:

      一年前我搜索相同的东西,但最后我使用了另一种方法。这些是我发现的解析 sql 的项目。

      • ANTLR。是常用的泛型解析器。它是一种解析器生成器。它根据一组规则编写 java 代码。很多语言都有规则,比如西班牙语、java 或 sql。

      • JParsec。好像和上一个差不多。好像已经有SQL规则了,但是好像不好用。

      • ZQL。使用 JavaCC 自动生成解析 SQL 的 Java 代码。我测试了这个,但我无法让它按我的意愿工作。而且我认为这个项目已经停止了。

      • sql-parser。它看起来不错,但是当我测试它时,我无法让它工作。该链接似乎不起作用,但我认为原始项目的this is a fork

      【讨论】:

        猜你喜欢
        • 2015-07-03
        • 2019-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-05
        • 1970-01-01
        • 1970-01-01
        • 2016-07-25
        相关资源
        最近更新 更多