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

打印 上一主题 下一主题

主题 836|帖子 836|积分 2508

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

报错sql
  1. <select id="tableList" resultType="org.jeecg.modules.activiti.modules.entity.TableInfo">
  2.         select
  3.         table_name, table_comment, create_time
  4.         from information_schema.tables
  5.         where table_schema = (select database()) and table_name NOT LIKE 'act_%' and table_name NOT LIKE 'sys_%'
  6.         <if test="tableName != null and tableName.trim() != ''">
  7.             and table_name like concat('%', #{tableName}, '%')
  8.         </if>
  9.         order by create_time desc
  10.     </select>
复制代码
错误信息:
  1. Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "=" "="
  2.     at line 3, column 22.
  3. Was expecting one of:
  4.     "&"
  5.     "&&"
  6.     ")"
  7.     "::"
  8.     "<<"
  9.     ">>"
  10.     "AND"
  11.     "AT"
  12.     "COLLATE"
  13.     "CONNECT"
  14.     "EXCEPT"
  15.     "FOR"
  16.     "GROUP"
  17.     "HAVING"
  18.     "INTERSECT"
  19.     "MINUS"
  20.     "OR"
  21.     "START"
  22.     "UNION"
  23.     "XOR"
  24.     "["
  25.     "^"
  26.     "|"
  27.         at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:30694)
  28.         at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:30527)
  29.         at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:7692)
  30.         at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:5443)
  31.         at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:5645)
  32.         at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:5324)
  33.         at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:5319)
  34.         at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:232)
  35.         at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:153)
  36.         at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)
复制代码



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

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


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

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

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

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


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

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

  1.             <dependency>
  2.                 <groupId>com.github.pagehelper</groupId>
  3.                 <artifactId>pagehelper-spring-boot-starter</artifactId>
  4.                 <version>${pagehelper.boot.version}</version>
  5.                 <exclusions>
  6.                     <!-- 解决jsqlparser 依赖版本冲突-->
  7.                     <exclusion>
  8.                         <artifactId>jsqlparser</artifactId>
  9.                         <groupId>com.github.jsqlparser</groupId>
  10.                     </exclusion>
  11.                 </exclusions>
  12.             </dependency>
复制代码
清除Mybatis-Plus中的jsqlparser
  1.         <!-- mybatis-plus 增强CRUD -->
  2.         <dependency>
  3.             <groupId>com.baomidou</groupId>
  4.             <artifactId>mybatis-plus-boot-starter</artifactId>
  5.             <version>3.4.1</version>
  6.             <exclusions>
  7.                 <!-- 解决jsqlparser 依赖版本冲突&ndash;&gt;-->
  8.                 <exclusion>
  9.                     <artifactId>jsqlparser</artifactId>
  10.                     <groupId>com.github.jsqlparser</groupId>
  11.                 </exclusion>                                                     
  12.             </exclusions>
  13.         </dependency>
复制代码
引入新的jsqlparser jsqlparser最好照旧原来的版本
不知道的话看下 AllValue类地点的版本

  1.         <dependency>
  2.             <groupId>com.github.jsqlparser</groupId>
  3.             <artifactId>jsqlparser</artifactId>
  4.             <version>4.4</version>
  5.         </dependency>
复制代码
方法4.修改MyBatis-plus或pageHelper包的版本,这个就需要自己试试了



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表