2016-12-01 71 views
0

我收到来自REST API where子句中获取,我应该转换特性,所以,我需要这个字符串转换为Java对象与逻辑和....例如:解析其中从静止子句中查询获得致电

String where = "prop = 1 and prop2 = 'ssdf' or date > 20121204"; 

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

+0

看到http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html –

+0

我的问题SI如何解析您receiveing查询 – user3489875

回答

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.xhttps://github.com/JSQLParser/JSqlParser

然后,你有一个对象树,分离运算符,和,或者值。您可以使用ExpressionVisitorAdapter进行遍历,例如

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

expr.accept(visitor);