发新话题
打印

用jsqlparser过滤数据集,使用sql 查询的语法

关于jsqlparser的问题

admin大哥,加我QQ 1342104056
问关于jsqlparser的问题。
急急急。
谢谢,恳求你同意。

TOP

admin大哥,现在的问题是有个sql语句 select * from table where a=1 and b=2
我有个值传过来a=3,我不让其通过,就像你例子里的eval函数,可你的BinaryOperator.eval,我没找到这个类啊。
我该如何验证传过来的变量是否符合where条件。

具体情形是jms activemq在接收消息时,有个消息选择,具体请看j2ee api 的jms规范里的Session接口的createConsumer方法
MessageConsumer createConsumer(Destination destination,
                               String messageSelector)
                               throws JMSException

messageSelector就是按照sql语法来过滤message的,我不知道他是如何实现的,

他只在接收的时候验证哪些消息可以接收 我现在想在发送的时候也验证下,可activemq没有实现。我自己又不知道他是如何过滤掉不符合条件的消息的。

看了你的例子,通过eval实现了这个过滤功能,但还是不太懂,之所以要加QQ,只是练习方便,这个是比较着急的问题,所以加QQ联系方便,谢谢。

TOP

我按照你说的做了,已经可以打印出结果了,通过或不通过,可是我在测试where条件有and or 时候抛异常了
bsh.InterpreterError: unimplemented binary operator
        at bsh.Primitive.booleanBinaryOperation(Unknown Source)
        at bsh.Primitive.binaryOperationImpl(Unknown Source)
        at bsh.Primitive.binaryOperation(Unknown Source)
        at sqlparser.BinaryOperation._eval(BinaryOperation.java:40)
        at sqlparser.BinaryOperation.eval(BinaryOperation.java:28)
        at sqlparser.WhereExpressionVisitor.visit(WhereExpressionVisitor.java:270)
        at net.sf.jsqlparser.expression.operators.conditional.AndExpression.accept(AndExpression.java:36)
        at sqlparser.WhereExpressionVisitor.eval(WhereExpressionVisitor.java:70)
        at sqlparser.TestSQL2.main(TestSQL2.java:36)

其中TestSQL2.java是我自己写的测试类。请问是什么问题?为什么不支持and或or呢,即复杂的sql

TOP

单个条件测试是没有问题,假如在where条件里多个条件的话,该如何解决呢,我搞了下 还是不行,望指点。
a=1 and b=2 等等类似的条件

跪求。。。

TOP

谢谢,版主大哥,我的问题已经解决了,非常非常感谢。
非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢

打了这么多字 有点刷屏的感觉 但确实是真心表达我的谢意。呵呵。

TOP

发新话题