下午码代码的时候,调用了公司封装的jar包,一直报sql语句错误。但是同事调用却没问题,搞的相当的郁闷。
我就将公司的jar包进行反编译,将编译后的代码copy到本地进行调试,获取将要运行的sql。
此时sql语句看起来一点都没错,我将sql语句粘贴到navicat里,就能明显看到,navicat并没有将where视作关键字(没有高亮表示),我删除where前面的空格,从新敲一个空格,此时where变成高亮,也就是意味着,此时的where是关键字。执行sql果然没问题。
从这里可以得知,是那个空格字符导致的。我能猜想到的是,那个字符可能是在中文下敲的。
同事执行的没问题,因为同事采用的是oracle 数据库,而我调用的时候,用的是mySql数据库。
得出结论:
代码尽可能的不要在中文下进行输入。