在sql中使用函数,遇到net.sf.jsqlparser.parser.ParseException异常
异常详情如下
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " “->” "-> “” at line 1, column 31.
Was expecting one of:
“AS” …
“DO” …
“ANY” …
“KEY” …
……(中间省略很多符号)
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:13996)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:13852)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:78)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:52)
… 99 more
参考 https://blog.youkuaiyun.com/weixin_36146275/article/details/79355544
定位原因为:在sql语句中使用了IF函数,缺少sql解析工具的jar包
解决方案:在pom.xml文件中添加关于jsqlparser的依赖,注意必须使用0.9以上的版本,否则运行时会报错
<!--必须使用0.9以上的版本-->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>1.4</version>
</dependency>