[英]Parse where clause query from Rest Get call
我從Rest API Get接收到where子句,並且應該轉換屬性,因此我需要將此字符串轉換為具有邏輯和....的java對象,例如:
String where = "prop = 1 and prop2 = 'ssdf' or date > 20121204";
是否有任何Java庫可以將where子句轉換為具有單獨條件和運算符的java對象?
終於我找到了這個庫: https : //github.com/JSQLParser/JSqlParser
看起來非常適合查詢解析
使用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 )
然后,您將獲得一個對象樹,其中包含分開的運算符ands,ors值。 您可以使用ExpressionVisitorAdapter遍歷這一行,例如
ExpressionVisitorAdapter visitor = new ExpressionVisitorAdapter() {
@Override
public void visit(Column column) {
System.out.println(column);
}
};
expr.accept(visitor);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.