当前使用版本(必填,否则不予处理)

com.baomidou mybatis-plus-boot-starter 3.1.0 com.github.jsqlparser jsqlparser 1.4 compile

该问题是如何引起的?(确定最新版也有问题再提!!!)

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: "||" at line 21, column 37.

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