- 1. 当xml文件不在resources目录下
- 1. 当xml文件不在resources目录下
- (1)mapper和mapper.xml在同一个目录下,且文件名相同
- (2) mapper和mapper.xml在同一个目录下,但文件名不相同
- (3)mapper和mapper.xml不在同一个目录下
需要在application.yml文件中配置mybatis-plus.mapper-locations值,保证xml文件被读取到,即可正常运行。
mybatis-plus: mapper-locations: classpath:*/mapper*.xmltrue
原因:
因为xml文件在java目录下,如果是用maven构建的项目,maven默认的打包环境下,只会把src/main/java包中的 ".java"文件进行编译生成“.class”文件,加入以上代码才能在打包的时候,使xml文件被打包进jar/war包中。
扩展:
(2) mapper和mapper.xml在同一个目录下,但文件名不相同src/main/resources **/*.xml a.properties true src/main/resources false a.properties
测试发现报错:
(3)mapper和mapper.xml不在同一个目录下mapper和mapper.xml不在同一个目录下时,无论文件名是否相同,测试同样报错,找不到对应方法。
总结
1.当mapper文件和xml文件在同一个目录下(非resources目录下),需要配置pom.xml文件,使xml文件能够被打进jar包,不需要额外配置yml文件;
2.当mapper文件在/java目录下,xml文件在resources目录下,需要配置yml文件使得xml文件能够被找到。