为了账号安全,请及时绑定邮箱和手机立即绑定

Java Util SQL Parser 为正确的语句抛出异常

Java Util SQL Parser 为正确的语句抛出异常

子衿沉夜 2021-09-03 16:30:29
我的说法是new_call.cdctype=goal.cdctype当我对此调用方法 CCJSqlParser.SQLCondition() 时,我得到一个异常说Encountered " "=" "= "" at line 1, column 17.Was expecting one of:    "NOT" ...    "LIKE" ...    "ILIKE" ...    "NOT" ...    "NOT" ...关于为什么会发生这种情况的任何见解?我正在检查连接条件,我认为这是连接条件的合适表达式。代码:String sql = "new_call.cdctype=goal.cdctype";CCJSqlParser parser = new CCJSqlParser(new StringReader(sql));    String errorMsg=null;    try {        parser.SQLCondition();    } catch (ParseException e) {        errorMsg=e.getMessage();    }    return errorMsg;
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

如果您深入研究JSqlParsers语法,您会发现SQLCondition只是以下之一:

  • 之间

  • 一片空白

  • 存在

  • 喜欢表达。

您指定了一个所谓的RegularCondition

以下是两种解析条件的方法:

//Shortcut

Expression parseCondExpression = CCJSqlParserUtil.parseCondExpression("new_call.cdctype=goal.cdctype");

System.out.println(parseCondExpression);


//from issue

String sql = "new_call.cdctype=goal.cdctype";

CCJSqlParser parser = new CCJSqlParser(new StringProvider(sql));

try {

    parser.RegularCondition();

} catch (ParseException e) {

    e.printStackTrace();

}

顺便说一下,我使用的是 JSqlParser V1.2。您的版本似乎有点旧,因为解析器的构造函数参数现在是Provider。


查看完整回答
反对 回复 2021-09-03
  • 1 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信