我有一些旧式SQL,我想将其拆分为组成部分,然后添加更多条件,order by子句等。

有没有现有的Java库可以像这样解释SQL?

所以我想做类似的事情

deconstructedSQL.getCriteria().add("price > 100");

要么
deconstructedSQL.getOrderBy().add("price");

要么
String select = deconstructedSQL.getSelect();
if ("*".equals(select))
{
    deconstructedSQL.setSelect("my_table.*");
}

我可以使用Hibernate的方言添加特定于我的数据库的信息以进行分页(setFirstResultsetMaxResult),但是我想更进一步。

最佳答案

我将使用sql解析器(javacc,jparsec,antlr)将字符串分解为AST。一旦具有这种结构,就可以按其描述进行操作,最后以字符串形式发布修改后的版本。

08-04 20:38