Mybatis plus 实体类中有Mysql关键字的处理方法
起因
又是一个快乐的工作日,我正在愉快的敲码,忽然被测试小姐姐告知,昨天提测的系统中XX功能报以下错误
分析
首先分析浏览器响应码为500,大体含义为服务器由于遇到错误而不能完成该请求。 (响应码500服务器i错误又可细分7种不同的情况,这里不详细赘述)
那么接下来初步判断数据应该没添加上,后端也应该报错了,咱们一条一条来看
-
数据库对应表最新数据查看
果然,数据没有添加上 -
后台报错分析
大家注意看红框中的错误提示,我用的是Mybatis-plus 框架,按理说自动生成的语句肯定是没问题的,但是还是报syntax异常,之前碰到过关键字错误,所以这里我就怀疑会不会也是关键字错误, 接下来准备在Navicat中测试下原添加语句 -
Navicat中添加sql语句测试
describe 已经在Navicat中报蓝了,结果果然是错误的
Mysql中解决方法
-
mysql中字段为关键字时的解决方法
解决方法就是在把关键字用反引号包裹起来,例如
`describe`
成功!!!
mybatis-plus中解决方法
-
mybatis-plus中实体字段为mysql关键字时的解决方法
在关键字对应属性上加上 @TableField注解 , 那么疑问来了 @TableField 注解是什么意思呢?
@TableField("`describe`")
private String describe;
如图 , @TableField注解的含义就是将数据库列与 JavaBean 中的属性进行映射,当然@TableField还有其他功能,这里就不过多赘述.
See you