Type interface com.mybatis.mapper.UserMapper is not known to the MapperRegistry报错信息
出现了这个问题一般是因为mybatis-config的mapper的配置出错了,无法找到相应的XxxMapper接口的XxxMapper.xml的映射文件。检查重新配置一下mapper即可
以下是mapper的四种配置方式
SQL映射文件的配置方式包括四种:
- resource:从类路径中加载
- url:从指定的全限定资源路径中加载
- class:使用映射器接口实现类的完全限定类名
- package:将包内的映射器接口实现全部注册为映射器
1、resource:
这种方式是从类路径中加载配置文件,所以这种方式要求SQL映射文件必须放在resources目录下或其子目录下。
<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<mapper resource="org/mybatis/builder/BlogMapper.xml"/>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
2、url:
使用绝对路径的方式,这种配置对SQL映射文件存放的位置没有要求
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<mapper url="file:///var/mappers/BlogMapper.xml"/>
<mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
3、class:
如果使用这种方式必须满足以下条件:
- SQL映射文件和mapper接口放在同一个目录下
通过在在resources目录下新建:com/powernode/mybatis/mapper来实现,注意这里的目录名称要与上面java文件中XxxMapper接口的包名一致,将XxxMapper.xml移动到这个文件夹中
<mappers>
<mapper class="com.powernode.mybatis.mapper.CarMapper"/>
</mappers>
- SQL映射文件的名字也必须和mapper接口名一致
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
<mapper class="org.mybatis.builder.AuthorMapper"/>
<mapper class="org.mybatis.builder.BlogMapper"/>
<mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
4、package
如果class较多,可以使用这种package的方式,但前提条件需要和上面的一样
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="com.powernode.mybatis.mapper"/>
</mappers>