排查思路
1:检查xml文件所在的package名称是否和interface对应的package名称一一对应
2:检查xml文件的namespace是否和xml文件的package名称一一对应
3:检查函数名称能否对应上
项目结构目录
这里的namespace需要对应对应的接口全包名,文件夹目录是不是一样的不影响。
如果都对应了还是出现这种错误,需要在application.yml配置文件加上mybatis配置
mybatis:
mapper-locations: classpath*:mapper/*Mapper.xml
server:
port: 8080
spring:
thymeleaf:
cache: false
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
username: username
password: password
mybatis:
mapper-locations: classpath*:mapper/*Mapper.xml
最后如果都不行的话需要看一下部署项目的文件目录有没有加载,如下:
我的pom.xml配置文件的resources的配置有问题,导致项目部署的时候没有加载到我的mybatis文件夹目录下面的xml配置文件,需要将include标签的内容修改,**/*这样的写法,是为了保证各级子目录下的资源文件被打包,利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。
<includes>
<include>**/**</include>
</includes>
修改后: