一、当编译器报MyBatis的mapper里面某个方法找不到时:
1. 仔细对照方法名有没有误,标签里面的属性parameterType、 resultType啊等等有没有写错,能不能与方法签名对上号;
2. 确认部署没问题之后还是有问题,可以看看是否是xml没有被重新编译,导致项目找不到新写的方法,转(2);
注:当maven工程遇到莫名其妙的错误的时候,首先运行 mvn clean。
二、发现项目没有被编译时:
此异常的原因是由于mapper接口编译后在同一个目录下没有找到mapper映射文件而出现的。由于maven工程在默认情况下src/main/java目录下的mapper文件是不发布到target目录下的。
解决办法:
方法1:将Mapper映射文件放到src/main/resources目录下,然后再建一个和mapper接口所在的包名一样的包。
方法2:在此工程pom文件中配置一下resources。
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
注: 原配置文件默认放在src/main/resources目录下,这样配置了之后,就指定src/main/java它是资源目录,src/main/resources目录就会不起作用了。如果不想这样,需要在配置中再加上一个resource节点,把src/main/resources目录也添加进来,即:
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>