#####在使用Mybatis 接口编程 代替直接使用SqlSession实例来直接执行已映射的SQL语句时,出现了MapperRegistry错误。
####错误信息:
- org.apache.ibatis.binding.BindingException:
- org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
- org.apache.ibatis.session.Configuration.getMapper(Configuration.java:745)
- org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:292)
- com.szcport.test.Test.main(Test.java:47)
查阅到的原因可以分为三类,这里之总结两类。
1.Mybtis的配置文件Configuration.xml中 mapper指定的是映射xml文件路径,如:
<mapper resource="com/csdn/mapper/UserMapper.xml"/>
那么则是映射xml文件的namespace书写出现问题,namespace的正确写法应该为:
<mapper namespace="接口完整类名">
</mapper>
<mapper namespace="com.csdn.dao.接口名">
</mapper>
2.Mybtis的配置文件mapper使用包扫描,如:
<package name="com.csdn.mapper"/>
这种情况要求映射xml文件和mapper接口在同一个包里。
参考:http://blog.youkuaiyun.com/vmp_jin/article/details/50765034