从Rest Get调用解析where子句查询

时间:2016-12-01 05:12:36

标签: java sql rest

我从Rest API Get接收一个where子句,我应该转换属性,所以我需要将这个字符串转换为带有逻辑和....的java对象,例如:

<httpCookies requireSSL="true" />

是否有任何java库将where子句转换为具有单独条件和运算符的java对象?

2 个答案:

答案 0 :(得分:0)

最后我找到了这个库: https://github.com/JSQLParser/JSqlParser

似乎非常适合查询解析

答案 1 :(得分:0)

使用JSqlParser可以使用已经实现的实用程序方法来解析where子句中的条件:

String where = "prop = 1 and prop2 = 'ssdf' or date > 20121204";
Expression expr = CCJSqlParserUtil.parseCondExpression(where);
System.out.println(expr);

适用于 JSqlParser V0.9.x https://github.com/JSQLParser/JSqlParser

然后你有一个带有分隔运算符的对象树,以及ofs,ors,values。您可以使用ExpressionVisitorAdapter进行遍历,例如

ExpressionVisitorAdapter visitor = new ExpressionVisitorAdapter() {
    @Override
    public void visit(Column column) {
        System.out.println(column);
    }
};

expr.accept(visitor);