Mybatis plus 实体类字段有Mysql关键字的处理方法详解

Mybatis plus 实体类中有Mysql关键字的处理方法

起因

又是一个快乐的工作日,我正在愉快的敲码,忽然被测试小姐姐告知,昨天提测的系统中XX功能报以下错误Mybatis plus 实体类字段有Mysql关键字的处理方法详解

分析

首先分析浏览器响应码为500,大体含义为服务器由于遇到错误而不能完成该请求。 (响应码500服务器i错误又可细分7种不同的情况,这里不详细赘述)
那么接下来初步判断数据应该没添加上,后端也应该报错了,咱们一条一条来看

  1. 数据库对应表最新数据查看
    Mybatis plus 实体类字段有Mysql关键字的处理方法详解
    果然,数据没有添加上

  2. 后台报错分析
    Mybatis plus 实体类字段有Mysql关键字的处理方法详解
    大家注意看红框中的错误提示,我用的是Mybatis-plus 框架,按理说自动生成的语句肯定是没问题的,但是还是报syntax异常,之前碰到过关键字错误,所以这里我就怀疑会不会也是关键字错误, 接下来准备在Navicat中测试下原添加语句

  3. Navicat中添加sql语句测试
    Mybatis plus 实体类字段有Mysql关键字的处理方法详解
    describe 已经在Navicat中报蓝了,结果果然是错误的

Mysql中解决方法

  1. mysql中字段为关键字时的解决方法
    Mybatis plus 实体类字段有Mysql关键字的处理方法详解
    解决方法就是在把关键字用反引号包裹起来,例如
`describe`

Mybatis plus 实体类字段有Mysql关键字的处理方法详解
成功!!!

mybatis-plus中解决方法

  1. mybatis-plus中实体字段为mysql关键字时的解决方法
    Mybatis plus 实体类字段有Mysql关键字的处理方法详解
    在关键字对应属性上加上 @TableField注解 , 那么疑问来了 @TableField 注解是什么意思呢?
    Mybatis plus 实体类字段有Mysql关键字的处理方法详解
    @TableField("`describe`")
    private String describe;

如图 , @TableField注解的含义就是将数据库列与 JavaBean 中的属性进行映射,当然@TableField还有其他功能,这里就不过多赘述.

See you

上一篇:Mybatis-plus常见的坑@TableField不生效


下一篇:ES语法入门