单独针对mysql,可以使用反引号,即`
对于oracle,需要使用双引号加大写,即"KEY"这种,或者直接不加任何符号,不能使用单引号,不然会出现评论区兄弟说的那种情况,即查询结果的字段是返回'key'这种形式。
sql使用单引号
查询见截图,下面返回的查询结果中返回的字段名带有单引号:
查询结果中应该不带单引号的。
所以为了兼顾mysql和oralce,最好的办法是修改字段名,不要涉及sql系统关键字和特殊字段。
在mybatis的xml配置中有如下sql语句:
上述配置,在mysql中会报错
提示有语法错误, key value为msyql系统关键字,解决方法可以是可以用反引号,如下
这样做在mysql中是可以的,不过在oracle中使用反引号会报错
上述mybatis配置中的sql在oracle中执行是没问题的,
所以为了sql在mysql和oracle中都能执行,使用单引号更改sql语句,改完如下:
这样在mysql和oracle中都可以执行了。
对于>和<这种符号在xml中要转义的,>转义成 >,<转义成<。(注意后面要带分号的)gt的意思是 great then
lt的意思是less then
还有,如果你的sql语句中有&(与 *** 作)这个符号,要转义成 &
如果你嫌转义后的sql不太好看而不想转义,可以使用
<![[CDATA
]]>
将sql语句包起来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)