Type interface is not known to the MapperRegistry错误

Type interface is not known to the MapperRegistry错误

发生在mybatis注解和配置文件一起用的时候
由于我命名接口的时候其中有一个接口的名字和接口所在的文件夹是一样的
这样映射class文件的时候无论怎么填路径,第二个映射的文件都会去找到那个同名文class上去

List<pirc> pirc = sqlsession.getMapper(Map.Map.class).selectBymuch();
        for (Pirc pirc: pirc) {
            System.out.println(pirc);
        }
List<pirc> pirc = sqlsession.getMapper(Map.Map2.class).selectBymuch();
        for (Pirc pirc: pirc) {
            System.out.println(pirc);
        }
        更改前无论怎么改Map2都报红,而且是idea提示输入进去的都报红   

更改后()

List<pirc> pirc = sqlsession.getMapper(Map.Map1.class).selectBymuch();
        for (Pirc pirc: pirc) {
            System.out.println(pirc);
        }
List<pirc> pirc = sqlsession.getMapper(Map.Map2.class).selectBymuch();
        for (Pirc pirc: pirc) {
            System.out.println(pirc);
        }

直到我改了一下那个接口的名字。。。
好家伙,我配置的那个第二个文件的一级目录居然跟着变了。我这才知道idea一致把我配置的一级目录当成了那个class文件。
解决
方法一:重命名避免冲突
方法二:不要整个包起别名。。
方法三:检查是否在配置文件引入映射文件
方法四:检查名称空间是否匹配,接口方法名是否和sql语句的id相同
方法五:配置文件配置引入配置文件(配置文件方案),引入实现类接口(注解方案),时必须用全路径名,一般配置文件放在工程目录直接文件名即可,接口一定要记得全路径。
方法六:使用配置文件方案时映射文件中的名称空间一定要全路径!注解无所谓,注解不用映射配置文件。但是混合使用也要记得改

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值