这是我的第2个bug-Type interface Mapper is not known to the MapperRegistry.

本文讲述了在使用MyBatis时遇到的类型接口UserMapper未被MapperRegistry知道的问题,原因在于mapper扫描配置错误。解决方法是修正包路径,正确的方式是使用'.'连接包名。

bug描述

Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interface com.itheima.mapper.UserMapper is not known to the MapperRegistry.
	at org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
	at org.apache.ibatis.session.Configuration.getMapper(Configuration.java:823)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:291)
	at com.itheima.Test2.main(Test2.java:26)

原因

使用mybatis时,扫描mapper映射文件错误 导致的

解决办法

错误方式

    <mappers>
    <package name="com/itheima/mapper/UserMapper.xml"/>
    </mappers>

正确方式

    <mappers>  
        <package name="com.itheima.mapper"/>
    </mappers>

扫描包路径时要用.连接包名,而不是 /

`Type interface com.isoft.mapper.SysUserMapper is not known to the MapperRegistry.` 这个错误通常表示 MyBatis 没有正确注册 `SysUserMapper` 接口。以下是一些可能的解决方法: ### 检查配置文件 确保在 MyBatis 的配置文件中正确加载了 `SysUserMapper` 对应的 SQL 映射文件。例如: ```xml <mappers> <!-- 加载 SQL 映射文件 --> <mapper resource="com/isoft/mapper/SysUserMapper.xml"/> </mappers> ``` 这里要保证路径和文件名正确,与引用中加载 `UserMapper.xml` 的方式类似,路径分隔符使用 `/` 而非 `.` [^1]。 ### 检查接口和映射文件路径 确保 `SysUserMapper` 接口和对应的 XML 映射文件在正确的包路径下,并且文件名匹配。通常,XML 映射文件的命名应该与接口名一致,只是扩展名不同。 ### 检查 Maven 或 Gradle 配置 如果项目使用 Maven 或 Gradle 构建,确保在配置文件中包含了 MyBatis 相关依赖,并且配置了资源过滤,以便正确打包 XML 映射文件。例如,在 Maven 的 `pom.xml` 中添加以下配置: ```xml <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> ``` ### 检查 MyBatis 扫描配置 如果使用 Spring 集成 MyBatis,确保配置了正确的 Mapper 扫描路径。例如,在 Spring Boot 项目中,可以使用 `@MapperScan` 注解指定扫描的包: ```java import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.isoft.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` ### 检查类路径和编译 确保项目编译正常,并且生成的类文件和资源文件都在正确的类路径下。可以尝试清理并重新构建项目。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值