"AS" ... "DO" ... "INTO" ... "FROM" ... "WHERE" ... "XML" ... "GROUP" ... "VALUE_caused by: net.s">
当前位置:   article > 正文

Caused by: net.sf.jsqlparser.parser.ParseException

caused by: net.sf.jsqlparser.parser.parseexception: encountered unexpected t

错误异常:

Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "(" "( "" at line 3, column 11.

Was expecting one of:
    <EOF> 
    "AS" ...
    "DO" ...
    "INTO" ...
    "FROM" ...
    "WHERE" ...
    "XML" ...
    "GROUP" ...
    "VALUE" ...
    "HAVING" ...
    "REPLACE" ...
    "TRUNCATE" ...
    "CAST" ...
    "PARTITION" ...
    "EXTRACT" ...
    "MATERIALIZED" ...
    "START" ...
    "CONNECT" ...
    "SIBLINGS" ...
    "COLUMN" ...
    "NULLS" ...
    "FIRST" ...
    "LAST" ...
    "ROWS" ...
    "RANGE" ...
    "FOLLOWING" ...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

部分错误异常。如果出现<EOF>标签内的内容。那么排查错误的方向都差不多。其实大家debug也可以发现问题。

由【net.sf.jsqlparser.JSQLParserException】可看出是因为组装的sql语句解析过程中抛出"非RuntimeException异常",异常被程序捕抓处理且未出现新异常,异常后的代码继续执行,所以不影响一个完整Retrieve操作。而一些"RuntimeException异常",例如:空指针(NullPointerException)、数组越界(IndexOutOfBoundsException)、类型转换(ClassCastException)等会被JVM自动处理,会在console控制台捕抓并打印异常日志。

我的mapper文件是这么写的:

        SELECT
            dept_name
        FROM
            blade_dept
        WHERE
            id IN
        <foreach collection="array" item="ids" index="index" open="(" close=")" separator=",">
            #{ids}
        </foreach>
        and is_deleted = 0
    </select>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

一看就会发现是foreach标签出的问题。也就是ids为空。
所以找到谁调用的这个mapper方法。在传参数的时候判断下空值就好了。

虽然我在这里是因为前人写的代码不够严谨报的这个错误。但是大家写SQL的时候尽量不要出现函数套函数这种情况。也有可能会发生这种情况。
可以用<![CDATA[]]>这样就不会被编译。

简单记录下错误,希望能帮助到大家。如果有不足的或者有其他相似错误解决的还望大家指教。感谢各位观看。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/894131
推荐阅读
  

闽ICP备14008679号