本次问题最终解决

查了很多资料,下面转载几乎是最全的一份资料,但仍未找到原因。最终对比现有项目结构,发现最终问题:由于Mybatis在自动生成model,mapper,和xml文件时,并未将mapper和xml配置在同一个包下,从而导致无法找到xml文件。解决办法,Mybatis的generator.config文件中配置在同一包下。或者再生成文件后,手动调整

一、说明

造成MyBatis报Invalid bound statement (not found)错误有很多种,主要原因就是xxxMapper.java与xxxMapper.xml没有正确绑定。没有正确绑定的原因有很多种,所以导致有些人在网上百度查询到别人的博客上写的解决方法之后却无法解决自己的问题,在此作一些方法总结。

二、错误产生原因及解决方法

2.1 映射xxxMapper.xml文件未被扫描

如果你使用的是Maven构建的项目,那么因为maven默认只是加载src/main/resources目录下的配置文件,并不会主动加载src/main/java下的配置文件。如果你的Mybatis映射xml文件是与接口文件放在同一目录下的话,就必须在pom.xml文件中加以上以下配置:

2.2 接口名称与xml映射文件名称不一致

请检查你的的xxxMapper.java文件与xxxMapper.xml文件名称是否一致;

spring boot Value不起作用_SpringBoot

2.3xml映射文件中的namespace配置错误

namespace必须等于接口的完整类名

spring boot Value不起作用_xml_02

spring boot Value不起作用_xml文件_03

2.4 xml映射文件中的select/delete/update/insert等标签的id值与接口中的方法名称不一致

spring boot Value不起作用_映射文件_04

spring boot Value不起作用_Mybatis_05

2.5xml映射文件中的select/delete/update/insert等标签的parameterType的值与接口中的方法的参数的类型不一致

spring boot Value不起作用_SpringBoot_06

spring boot Value不起作用_xml文件_07

2.6 xml映射文件中的select/delete/update/insert等标签的resultMap的type或resultType与接口中的方法的返回参数的类型不一致

spring boot Value不起作用_xml_08

spring boot Value不起作用_SpringBoot_09

2.7xml映射文件中的select/delete/update/insert等标签中的databaseId的值在spring配置文件中未找到

spring boot Value不起作用_映射文件_10

spring boot Value不起作用_xml文件_11


以上整理的错误产生的原因并不全,以后再发生此问题如果不是以上收集的几点时我会再作补充。