Type interface com.mybatis.mapper.UserMapper is not known to the MapperRegistry

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>

你可能感兴趣的:(JavaEE,mybatis,java,mysql)