我收到来自REST API where子句中获取,我应该转换特性,所以,我需要这个字符串转换为Java对象与逻辑和....例如:解析其中从静止子句中查询获得致电
String where = "prop = 1 and prop2 = 'ssdf' or date > 20121204";
是否有任何java库将where子句转换为具有单独条件和运算符的java对象?
我收到来自REST API 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)
然后,你有一个对象树,分离运算符,和,或者值。您可以使用ExpressionVisitorAdapter进行遍历,例如
ExpressionVisitorAdapter visitor = new ExpressionVisitorAdapter() {
@Override
public void visit(Column column) {
System.out.println(column);
}
};
expr.accept(visitor);
看到http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html –
我的问题SI如何解析您receiveing查询 – user3489875