大家有没有遇到过mybatis 对于生成的sql语句 自动加上单引号的情况

夏季末落 2017-03-06 09:47:45
事情是这样的 前一段在网上看到了一个框架 感觉很不错 就将其下载下来进行了整改

由于原框架是用的mysql数据库 (有几张权限表) 我将其换为sql server 驱动后 进行查询时报错

原因为 某张表中 有一个 字段为 STATUS 这个字段应该是和某处冲突了 所以生成的sql 语句自动给 STATUS 加了单引号

导致的报错



这是图片 我查询了一下xml 并没有将语句的字段名加过单引号 反之 如果将数据库的STATUS 字段名字换一下 就可以了 这就很奇怪 大家有没有遇见过这种问题

还有一个问题就是 如果数据库的表名和sql server 系统表名冲突时 也会查询错误 比如这种 system_user
...全文
5757 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DuskForRain 2017-03-07
  • 打赏
  • 举报
回复
引用 8 楼 u013914005 的回复:
[quote=引用 6 楼 DuskForRain 的回复:] 你这里是数据语言的支持不一致的问题。 在MySQL中

select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
是的 因为之前网上用的是musql 但是我们项目用的是sql server 感觉很尴尬 [/quote] 在XML中全局替换反单引号 我怎么感觉 这就是几秒钟的问题呢
hersing 2017-03-07
  • 打赏
  • 举报
回复
引用 9 楼 u013914005 的回复:
[quote=引用 4 楼 qq_24652051 的回复:] #{}里的值会自动加引号,可以使用${}
我看了一下 项目刚运行的时候 还没有查xml生成sql 这里应该是根据注解生成的sql 不知道现在怎么弄[/quote] sql自动生成的?因为我使用的项目数据库是mysql,是可以的,我想应该会有解决办法,或者说在mybatis配置文件中写sql语句的时候加上单引号试试?
hersing 2017-03-06
  • 打赏
  • 举报
回复
mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分,你把写好的sql在sqlserver中运行一遍看看,如果没问题,放mybatis配置文件里手动加上单引号应该是没问题的
夏季末落 2017-03-06
  • 打赏
  • 举报
回复
引用 1 楼 wlwlwlwl015 的回复:
避免使用关键字,比如加个下划线status_,这样应该就没问题了
因为之前一直用的mysql 可能关键字没这么严 如果真的找不到问题的话 只能换了....关键这是系统表 换一个字段要改的地方实在很多 难到是mybatis的问题吗
小灯光环 2017-03-06
  • 打赏
  • 举报
回复
避免使用关键字,比如加个下划线status_,这样应该就没问题了
夏季末落 2017-03-06
  • 打赏
  • 举报
回复
引用 4 楼 qq_24652051 的回复:
#{}里的值会自动加引号,可以使用${}
我看了一下 项目刚运行的时候 还没有查xml生成sql 这里应该是根据注解生成的sql 不知道现在怎么弄
夏季末落 2017-03-06
  • 打赏
  • 举报
回复
引用 6 楼 DuskForRain 的回复:
你这里是数据语言的支持不一致的问题。 在MySQL中

select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
是的 因为之前网上用的是musql 但是我们项目用的是sql server 感觉很尴尬
夏季末落 2017-03-06
  • 打赏
  • 举报
回复
引用 3 楼 hersing 的回复:
mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分,你把写好的sql在sqlserver中运行一遍看看,如果没问题,放mybatis配置文件里手动加上单引号应该是没问题的
是这样的 我之前就试过了 sql server里 也不支持加单引号 好难过 难道这么就没办法了么
DuskForRain 2017-03-06
  • 打赏
  • 举报
回复
你这里是数据语言的支持不一致的问题。 在MySQL中

select `STATUS` from xx
是可以的,但在MSSQL中就不可以了 ,把反单引号 去掉 。
菜 头 2017-03-06
  • 打赏
  • 举报
回复
这个是数据库的关键字
coder_will 2017-03-06
  • 打赏
  • 举报
回复
#{}里的值会自动加引号,可以使用${}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧