tsx81429 发表于 2024-7-27 11:59:37

解决:net.sf.jsqlparser.parser.ParseException: Encountered unexpected

报错信息:
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "=" "="
  

报错sql
<select id="tableList" resultType="org.jeecg.modules.activiti.modules.entity.TableInfo">
      select
      table_name, table_comment, create_time
      from information_schema.tables
      where table_schema = (select database()) and table_name NOT LIKE 'act_%' and table_name NOT LIKE 'sys_%'
      <if test="tableName != null and tableName.trim() != ''">
            and table_name like concat('%', #{tableName}, '%')
      </if>
      order by create_time desc
    </select> 错误信息:
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "=" "="
    at line 3, column 22.

Was expecting one of:

    "&"
    "&&"
    ")"
    "::"
    "<<"
    ">>"
    "AND"
    "AT"
    "COLLATE"
    "CONNECT"
    "EXCEPT"
    "FOR"
    "GROUP"
    "HAVING"
    "INTERSECT"
    "MINUS"
    "OR"
    "START"
    "UNION"
    "XOR"
    "["
    "^"
    "|"

        at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:30694)
        at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:30527)
        at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:7692)
        at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:5443)
        at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:5645)
        at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:5324)
        at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:5319)
        at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:232)
        at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:153)
        at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)


1.方法1:先清除自己的代码誊写类错误,

类如sql错误,引用类错误,
我的其中一个缘故原由就是mapper对应实体的包名错误,因为是合并别的项目拷贝过来的,包名错误竟然还能编译通过启动,真tm的邪门。。。。。
https://img-blog.csdnimg.cn/direct/ee4ba467740f434c920d16545b8159ba.png

方法2::在mapper层的请求方法上 忽略mybatis的解析

有的博客说@InterceptorIgnore(tenantLine = "true")的作用是对某个Mapper方法 忽略多租户处理,从这次报错来看不但是这个作用,感觉应该另有忽略mysql关键词解析的作用,因为我的sql包含关键词database

@InterceptorIgnore(tenantLine = "true")
    List<TableInfo> tableList(String tableName); 至此我的bug用上面的方法已经解决了,
加上一些别的问题把问题弄复杂了,搞了几个小时
别的搜到的方法也记下吧

=====================================================================


缘故原由:
mybatis-plus包与原本存在的pagehelper存在com.github.jsqlparser:jsqlparser辩论
解决方案:
解决:
方法3.清除其他依赖中的jsqlparser的包,引入新的jsqlparser,

也可以只清除在其中一个的,使用另一个的jsqlparser包,不用重新导入
清除pageHelper中的jsqlparser

            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper.boot.version}</version>
                <exclusions>
                  <!-- 解决jsqlparser 依赖版本冲突-->
                  <exclusion>
                        <artifactId>jsqlparser</artifactId>
                        <groupId>com.github.jsqlparser</groupId>
                  </exclusion>
                </exclusions>
            </dependency> 清除Mybatis-Plus中的jsqlparser
      <!-- mybatis-plus 增强CRUD -->
      <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
            <exclusions>
                <!-- 解决jsqlparser 依赖版本冲突&ndash;&gt;-->
                <exclusion>
                  <artifactId>jsqlparser</artifactId>
                  <groupId>com.github.jsqlparser</groupId>
                </exclusion>                                                     
            </exclusions>
      </dependency> 引入新的jsqlparser jsqlparser最好照旧原来的版本
不知道的话看下 AllValue类地点的版本
https://img-blog.csdnimg.cn/direct/fe1499e669454dc9b3b003330eff84eb.png
      <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>4.4</version>
      </dependency> 方法4.修改MyBatis-plus或pageHelper包的版本,这个就需要自己试试了



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 解决:net.sf.jsqlparser.parser.ParseException: Encountered unexpected