idea中的mybatis映射报错

今天写代码的时候,由于需求有所小改变。于是去修改SQL。改完了SQL后,就进行很直接的run。却突然报错了一个信息如下:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

如图:
idea中的mybatis映射报错_第1张图片
开始的我以为是SQL写错的原因。于是先Revert了一下,然后执行代码。却依然报这个错误。这个时候,就感觉到有点不对劲了。这份代码,明明是上周五就好的代码。并且现在还在测试环境正常运行着,但是却在我这develop环境报错了。
开始了长达一下午的排错解决了。既然有报错了,就要解决。百度到的方案很老套,围绕着为啥mybaits没能够映射这个SQL。
1.mapper接口类和mapper.xml是否在同一个包下,文件名称是否一致(仅后缀不同)
2.mapper.xml的namespace是否是对应接口类的全名(包括包名和类名):这个是必须要保证相同,需要进行检查,而且全类名最好通过复制,不要自己手动拼写,容易出错
3.mapper接口类的方法名是否与mapper.xml中sql标签的id相同:这个也需要进行检查,必须保证一致
4.mapper.xml文件中用resultMap,而不用resultType(当sql操作结果是List或其他复杂结果集时),大小写也要确保一致。
经过3遍的一再核对,没有找到哪里有不对的。要是有不对的,上周也不可能执行成功。
没有办法,去核对查看其它的成功的,看下哪里有什么不同。
idea中的mybatis映射报错_第2张图片
感觉这个mybatis,不需要加@Mapper注解。并且之前没有使用该注解,也成功了。但是此时,决定妥协,添加了该注解,进行执行。却依旧报错了。
重启项目,清理redis,重启电脑。只能用这个很low的解决办法了。并且还尝试了clean一下项目!
这个时候,想起来了以前在pom.xml文件中配置的


     
          src/main/resources
          
              **/*.xml
          
     
 

遗憾的是,找完了整个项目,都没有找到配置mybatis的地方。可能封装起来了,一直没能找到。
这么久了,只能请外援了。----口袋!!!
最后,都没辙了。随手maven 重新更新了一下。 然后再去重启,奇迹般的好了。这次的bug的原因是:项目没有重新编译,导致报错。
于是通过Build–>Rebuild Project。 又尝试了一次,解决了问题。
idea中的mybatis映射报错_第3张图片
这个小问题,却弄了一下午。记录一下,以便日后再犯!

你可能感兴趣的:(dubbo)