我有一些旧式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的方言添加特定于我的数据库的信息以进行分页(
setFirstResult
和setMaxResult
),但是我想更进一步。 最佳答案
我将使用sql解析器(javacc,jparsec,antlr)将字符串分解为AST。一旦具有这种结构,就可以按其描述进行操作,最后以字符串形式发布修改后的版本。