由于原框架是用的mysql数据库 (有几张权限表) 我将其换为sql server 驱动后 进行查询时报错
原因为 某张表中 有一个 字段为 STATUS 这个字段应该是和某处冲突了 所以生成的sql 语句自动给 STATUS 加了单引号
导致的报错
这是图片 我查询了一下xml 并没有将语句的字段名加过单引号 反之 如果将数据库的STATUS 字段名字换一下 就可以了 这就很奇怪 大家有没有遇见过这种问题
还有一个问题就是 如果数据库的表名和sql server 系统表名冲突时 也会查询错误 比如这种 system_user
11 个解决方案
#1
#2
因为之前一直用的mysql 可能关键字没这么严 如果真的找不到问题的话 只能换了....关键这是系统表 换一个字段要改的地方实在很多 难到是mybatis的问题吗
#3
mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分,你把写好的sql在sqlserver中运行一遍看看,如果没问题,放mybatis配置文件里手动加上单引号应该是没问题的
#4
#{}里的值会自动加引号,可以使用${}
#5
这个是数据库的关键字
#6
你这里是数据语言的支持不一致的问题。
在MySQL中
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
在MySQL中
select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
#7
是这样的 我之前就试过了 sql server里 也不支持加单引号 好难过 难道这么就没办法了么
#8
是的 因为之前网上用的是musql 但是我们项目用的是sql server 感觉很尴尬
#9
我看了一下 项目刚运行的时候 还没有查xml生成sql 这里应该是根据注解生成的sql 不知道现在怎么弄
#10
sql自动生成的?因为我使用的项目数据库是mysql,是可以的,我想应该会有解决办法,或者说在mybatis配置文件中写sql语句的时候加上单引号试试?
#11
你这里是数据语言的支持不一致的问题。
在MySQL中
select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
是的 因为之前网上用的是musql 但是我们项目用的是sql server 感觉很尴尬
在XML中全局替换反单引号 我怎么感觉 这就是几秒钟的问题呢
#1
#2
避免使用关键字,比如加个下划线status_,这样应该就没问题了
因为之前一直用的mysql 可能关键字没这么严 如果真的找不到问题的话 只能换了....关键这是系统表 换一个字段要改的地方实在很多 难到是mybatis的问题吗
#3
mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分,你把写好的sql在sqlserver中运行一遍看看,如果没问题,放mybatis配置文件里手动加上单引号应该是没问题的
#4
#{}里的值会自动加引号,可以使用${}
#5
这个是数据库的关键字
#6
你这里是数据语言的支持不一致的问题。
在MySQL中
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
在MySQL中
select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
#7
mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分,你把写好的sql在sqlserver中运行一遍看看,如果没问题,放mybatis配置文件里手动加上单引号应该是没问题的
是这样的 我之前就试过了 sql server里 也不支持加单引号 好难过 难道这么就没办法了么
#8
你这里是数据语言的支持不一致的问题。
在MySQL中
select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
是的 因为之前网上用的是musql 但是我们项目用的是sql server 感觉很尴尬
#9
#{}里的值会自动加引号,可以使用${}
我看了一下 项目刚运行的时候 还没有查xml生成sql 这里应该是根据注解生成的sql 不知道现在怎么弄
#10
#{}里的值会自动加引号,可以使用${}
我看了一下 项目刚运行的时候 还没有查xml生成sql 这里应该是根据注解生成的sql 不知道现在怎么弄
sql自动生成的?因为我使用的项目数据库是mysql,是可以的,我想应该会有解决办法,或者说在mybatis配置文件中写sql语句的时候加上单引号试试?
#11
你这里是数据语言的支持不一致的问题。
在MySQL中
select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
是的 因为之前网上用的是musql 但是我们项目用的是sql server 感觉很尴尬
在XML中全局替换反单引号 我怎么感觉 这就是几秒钟的问题呢