项目场景:
2022年6月30在学习mybatis 框架Mybatis.xml maven 与ROM 的temp.xml 与包扫描都配置完成 在运行的时候报错
idea2021.3 mybatis3.5.6 jdk18.0
问题描述
例如:无法判断com/kkb/pojo/Temp.xml文件是否存在
### Error building SqlSession.
### The error may exist in com/kkb/pojo/Temp.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/kkb/pojo/Temp.xml
原因分析:
例如:java的.java文件编译后为.class文件,由于配置了包扫描,应该会把src/main/java/com.kkb.pojo/下的Temp.xml文件编译进入target文件夹。但是并没有编译进入,问题就在这里
如图,那么原因很可能是maven未生效,问题就变成了在maven 的target无法
无法编译.xml文件
注意配置<resource>在<build>中,一般每配置时是不会扫描src/main/java下的.xml文件去编译的
<build>
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<!-- 配置jdk的版本-->
<configuration>
<source>1.8</source>
<source>1.8</source>
</configuration>
</plugin>
</plugins>
</build>
解决方案:
提示:这里填写该问题的具体解决方案:清除maven的缓存,项目的缓存,删除target,使.xml文件被编译。
1删除已近编译的文件夹target
2清除idea的缓存
3打开maven->mybatis->Lifecycle->clean清除maven缓存
4重载项目 顶部Build->Rebuild Project 点击
去运行把,结果如下图所示,成功编译出.xml文件
补充:这里注意Mybatis的映射文件路径是选中target下的.xml copyPath 来的到的,有一些博主说一次性创建com.kkb.pojo 和分布创建com .kkb.pojo 在ieda中是不一样的
/路径代表文件夹下的绝对路劲 .表示相对的路径 不要配置错误。
也可以把。xml文件直接放入resources资源文件夹,哪里是文件的根目录,只不过项目会臃肿
可以参考本人的Could not find resource com/kkb/pojo/Temp.xml_激动的小非的博客-CSDN博客
希望对你有帮助