mybatis烦人的无效字符

说下前提,sql看起来正常,但是运行不正常,把sql打印出来,放数据库也是报错无效字符,可能sql里有看不见的字符。比如:mybatis烦人的无效字符

建议打开开发工具,把空白字符啥的展示设置全打开,删除就好了。

我这边的情况是删除完这些字符还是报错,因为我这个sql是foreach标签用in拼了几万个条件,sql极其长,放数据库想运行都没用,因为直接卡死,但是无效字符说白了就是sql有语法问题,字符问题。我就把xml文件的sql每个地方都改了一下,能缩进的缩进,中间能省略空格的我就省略,还有一个重要的点,就是where标签和foreach标签一起用的时候,别用where标签,否则括号会很宽,这也导致我这条长sql有问题,就直接用where。

做完这些后,后端执行成功了。

说个题外话,我以为这么长的sql肯定会OOM,没想到竟然没有,看来对这个理解还是有问题,这里的内存应该还是看你给应用分配了多少内存。