当前使用版本(必填,否则不予处理)
该问题是如何引起的?(确定最新版也有问题再提!!!)
1.开放com.baomidou.mybatisplus.extension.plugins.IllegalSQLInterceptor 2. 调用到 Statement statement = CCJSqlParserUtil.parse(originalSql);报错 3.对应xml的sql为:select count(*) from table o where 1=1 AND O.field1 LIKE '%'||?||'%' AND O.filed2 = ?
重现步骤(如果有就写完整)
如上
报错信息
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
... 121 common frames omitted
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "||"
Was expecting one of:
"&"
"&&"
")"
"::"
"<<"
">>"
"AND"
"CONNECT"
"ESCAPE"
"EXCEPT"
"FOR"
"GROUP"
"HAVING"
"INTERSECT"
"MINUS"
"ORDER"
"START"
"UNION"
"^"
"|"
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:19398)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:19248)
at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:4628)
at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:3185)
at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:3351)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:3059)
at net.sf.jsqlparser.parser.CCJSqlParser.SubSelect(CCJSqlParser.java:9738)
at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:4556)
at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:3185)
at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:3351)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:3059)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:3052)
at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:132)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:83)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:53)
Comment From: miemieYaho
去找 JSqlParser