bug出现的原因

昨天在工作中,因为表和datemodel的重新设计,于是对原有代码进行了重新生成,其中一个xml文件前期的规范并为做到位,所以在昨天的重新生成过程中,改变了原有位置,我将新的mapper.xml代码放入了规范位置,包路径进行了更改,但编译并未报错

后续情况

在调用某接口的时候,因为使用的mybatisPlus,所以使用其中getById的时候,抛出了异常:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found),于是进行百度的过程中总结出了以下几点

解决方案:

  1. 检查xml文件对应的package是否和mapper interface所在的包名一致。

    具体检查:

  2. 如果你使用的方法只是渗透到了DAO的实现层,但是并没有渗透进xml中做实现,那么也可能会抛出这个异常

  3. 如果实现层返回值在xml中并没有做处理,导致数据格式映射错误,那么也可能会抛出这个异常
    例如:selectByParam返回值为List 但是xml中并没有正确配置ResultMap,或者只配置了ResultType
  4. 如果以上问题都不存在,则对当前xml文件进行修改,例如删除空格重新编译
  5. 检查项目中的配置文件,看mapper配置中的包扫描配置是否存在错误,是否存在路径遗漏
  6. mapper配置中缺少了这么一行配置:mybatis.mapperLocations=classpath:mapper/.xml 或 mybatis.mapperLocations=classpath:**/Mapper.xml