我从Rest API Get接收一个where子句,我应该转换属性,所以我需要将这个字符串转换为带有逻辑和....的java对象,例如:
<httpCookies requireSSL="true" />
是否有任何java库将where子句转换为具有单独条件和运算符的java对象?
答案 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);