mybatis报错之SQL语句

### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'mock_examination_score' in 'field list' ### The error may exist in com/intelligentdrivingmanagesys/mapper/MockExaminationMapper.java (best guess) ### The error may involve com.intelligentdrivingmanagesys.mapper.MockExaminationMapper.updateMockExamination-Inline ### The error occurred while setting parameters ### SQL: update mock_examination set mock_examination_score = ?, mock_examination_message = ? where mock_examination_id = ? ### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'mock_examination_score' in 'field list' ; bad SQL grammar []] with root cause

发生类似的: Unknown column 'mock_examination_score' in 'field list'时,优先在本地对该表的该字段进行查询是否有误,建议每次写sql语句时都在本地的数据库软件进行测试,测试通过后再迁移到项目中进行应用。

自己才了很多坑之后觉得用以下步骤进行排查并解决:

        1.为了提高开发效率,每次如果都在本地的数据库软件进行测试再应用到项目中有点效率低,所以可以使用mybatis-plus提供的很多方法,这样我们就可以少写很多的sql语句。mybatis和mybatis-plus在项目中可以同时应用,一些简单的数据库增删改查可以通过直接调用mybatis-plus的方法进行解决。

        2.一些复杂的数据库操作建议自己写sql进行解决,使用mybatis-plus虽然很方便,但是有时候会出现奇奇怪怪的问题,难以排查,毕竟我们使用别人封装好的东西是这样子的。我自己踩过的一个坑就是使用mybatis-plus的根据id进行更新时出现过问题:updateById(),有时候我们要根据其他条件进行修改数据库的某一行,但是updateById()只能通过id进行更改,该方法传入的参数还是一个实体类的实例,使用不好很容易出错。

        3.如果项目中报了我上面提到的类似的错误,再将sql语句复制到本地的数据库软件进行测试能不能通过,前提也得是sql语句没有出现错误。上面报的问题我自己在本地的数据库软件中进行测试后报mock_examination_score未找到,于是我将修改这个字段对应的表将该字段重新写了一次名字,再进行本地数据库软件的测试就通过了,迁移到项目中的mapper文件也通过。

        4.留意sql语句的错误,留意别添加多了逗号什么的,留意每一个符号,平时注意sql语句的错误,因为在idea里面sql语句是一个字符串,所以idea自己不会报出错误,在写sql语句或者类似的需要传入一个字符串的时候要留意标点符号等等问题。控制台输出找不到实体类的属性的get()方法时就是自己的动态sql语句出现错误,首先检查sql语句。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值