今天学习Mybatis的时候,出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jmi.mapper.User,我怎么修改都不对,去网上查,按照方法来查也不对,首先,你对照以下的七步骤有没有问题。
1. xxxxMappers.xml文件与xxxxMappers.java的接口必须同一个目录下。
2. xxxxMappers.xml文件与xxxxMappers.java的接口文件名必须一致,后缀不管。
3. xxxxMapper.xml文件中标签的id值与xxxxMapper.java的接口中方法的名称完全一致。
4. xxxxMapper.xml文件中标签的parameterType属性值与xxxxMapper.java的接口中方法的参数类型完全一致。
5. 在这里插入代码片xxxxMapper.xml文件中标签的resultType值与xxxxMapper.java的接口中方法的参数类型完全一致。
6. xxxxMapper.xml文件中的namespace属性必须 是接口的完全限定名称:com.jmi.mapper.xxxxMapper
7. 在SqlMapConfig.xml文件中注册mapper文件时,使用class=接口的完全限定名称com.jmi.mapper.xxxxMapper
如果以上七步骤都没有问题,那么你可以看看pom.xml文件。
因为之前的xml文件是放在resources文件,现在新建了一个mapper文件夹,把这个mapper接口以及mapper.xml文件放到了mapper文件夹中,所以如果你不在pom.xml中配置一下的话,可能找不能你的mapper.xml文件,导致报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jmi.mapper.User
我这里报错是因为这里多打了一个.,导致找不到src/main/java下的以xml文件结尾的文件,就报错了。
<!--添加资源文件的指定-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>