org.apache.ibatis.binding.BindingException: Type interface com.vmpjin.dao.PersonMapper 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:689)
at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:250)
Runner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
at org.apache.ibatis.session.Configuration.getMapper(Configuration.java:689)
at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:250)
Runner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
网上大部分说的是xml文件里的namespace路径不对,其实有2个影响因素:
1,如果mabtis的配置文件里mapper用的不是包扫描,而是:
<mapper resource="com/vmpjin/mapper/OrdersMapper.xml"/>
则应该是网上说的那种情况。
2,如果配置里用的是包扫描:
<package name="com.vmpjin.mapper"/>
这种情况即使namespace的值正确也可能会报上述错误,因为包扫描要求mapper接口和xml文件在同一个包里。