一、org.apache.ibatis.binding.BindingException: Type interface XXX is not known to the MapperRegistry.
背景是初学MyBatis,刚刚学会简单的XML文件的配置,准备初步学习注解的使用,在我需要测试的接口上添加完注解之后,在MyBatis的核心配置文件中使用注解,一开始想试试OrdersMapperXML配置,UserMapper使用注解
<mappers>
<!-- <mapper resource="com.dameng.mapper/UserMapper.xml"></mapper>-->
<mapper resource="com.dameng.mapper/OrdersMapper.xml"></mapper>
<package name="com.dameng.mapper.UserMapper"/>
</mappers>
配置如上时就会造成not known to the MapperRegistry的错误,这时就是坑之一!!!package只能指定到包而不能明确是某个文件 !!
当我配置如下时又会提供新的错误 Type interface com.dameng.mapper.OrdersMapper is already known to the MapperRegistry.
<mappers>
<!-- <mapper resource="com.dameng.mapper/UserMapper.xml"></mapper>-->
<mapper resource="com.dameng.mapper/OrdersMapper.xml"></mapper>
<package name="com.dameng.mapper"/>
</mappers>
明显时扫描重复了,将OrdersMapper所在行注释即可解决问题,由此得出一个结论,当配置MyBatis时如何使用注解与xml文件混配一定注意范围(其实一般不会有这种情况😓)
二、Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for XX
这个是一个很低级的错误,XX应是某个方法的全名(包名.类名.方法名),配置时我一不小心多敲了一个空格,就会提示如上错误,