问题描述:
在使用maven整合mybatis项目时, 常常遇到以下问题:
之前的一个项目,配置文件是放在resources包下的 如下图所示(com.itheima.mapper里面放着UserMapper.xml)
这样做是没有问题的, 能正常跑
但是如下图所示: 假如你把UserMapper接口的配置文件(也就是UserMapper.xml)放在了 Java包下 而不是resources包下
那么idea就会报错
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/kuang/mapper/UserMapper.xml
意思是找不到com.kuang.mapper包下的UserMapper.xml这个配置文件. 不信的话你看下图, target目录下是不读取的
而且你会惊奇的发现 jdbc.properties也有可能因为这个原因不读取
解决方案:
如果发现这种情况, 就必须在pom.xml中加上如下配置
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
注意: 如果是src/main/resources的话 就是处理resources目录下. 如果像上文那样是src/main/Java 那就是给Java目录处理
处理过后 重新运行 我们发现target目录下读取了UserMapper.xml这个配置文件
问题解决.