mybatis报Mapped Statements collection does not contain value for com.abc.service.

疯狂会计 2016-06-29 03:54:28
求哪里错了,能启动起来,但是网页提交表单到controller里时报错
Mapped Statements collection does not contain value for com.abc.service.VenderServiceInter.insertVender
找了快两天也没找到问题出在哪,网上百度了很多都说是mappper.java文件和mapper.xml文件没映射上,但是namespace没错,id 也没错













...全文
1073 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂会计 2016-07-01
  • 打赏
  • 举报
回复
com.abc.service包下面的VenderServiceInter是一个接口,里面有insertVender()方法。com.abc.service.impl包下面的VenderServiceInter类实现了VenderServiceInter接口, com.abc.dao包下面的mapper.xml里面的namespace不是对应mapper.java文件的名称吗?应该没错啊,检查了两天了还是没发现哪错了,代码和包结构都在上面,能帮我看下吗
CatWitch 2016-07-01
  • 打赏
  • 举报
回复
com.abc.service.VenderServiceInter,你请求在mapper里没有找到这个namespace,你把mapper的namespace换成这个,或者可能是你dao里的namespace写错了
疯狂会计 2016-07-01
  • 打赏
  • 举报
回复
好了,所有问题都已解决, Mapped Statements collection does not contain value for com.abc.service.VenderServiceInter.insertVender 这个是因为配置文件中创建mapper对象的配置中的扫描路径写成了扫描全包,原因在6楼, 后来改回来后报 No qualifying bean of type [com.abc.service.VenderServiceInter] found for dependency: 然后我把com.abc.service.impl中的实现类VenderService和com.abc.controller中的类VenderController中注入接口类的属性名称改成了venderService 改成这样: @Resource private VenderServiceInterface venderService; 虽然有点一知半解,不过总算解决了,希望有大神能告诉其中原理
疯狂会计 2016-07-01
  • 打赏
  • 举报
回复
引用 6 楼 Tomorrow_Morning 的回复:
这个地方,basePackage应该配成com.abc.dao 你现在这种配置导致service接口也扫描了,mybatis会为service生成代理实现类,所以注入service的时候时机注入的时代理类,并不是你实现的impl
确实配置文件这里写错了,我的疏忽,但是改回来后服务器启动时会报错 报错内容:No qualifying bean of type [com.abc.service.VenderServiceInter] found for dependency: 导致service注入失败,controller对象也无法创建,搞不明白
疯狂会计 2016-07-01
  • 打赏
  • 举报
回复
有没有人帮我看一下啊
tf0003 2016-07-01
  • 打赏
  • 举报
回复
@Resource private VenderServiceInter VenderService;注入的是实现类 而不是借口 查查 @Resource 和 @autowired 的区别你就懂了
tf0003 2016-07-01
  • 打赏
  • 举报
回复
@Resource private VenderServiceInter VenderService;
tf0003 2016-07-01
  • 打赏
  • 举报
回复
第一个图 controller中service注入 改成 @Resource private VenderServiceInter VenderService;试试看
码上大侠 2016-07-01
  • 打赏
  • 举报
回复

这个地方,basePackage应该配成com.abc.dao
你现在这种配置导致service接口也扫描了,mybatis会为service生成代理实现类,所以注入service的时候时机注入的时代理类,并不是你实现的impl
曲奇丶 2016-07-01
  • 打赏
  • 举报
回复
你的Controller 中 @resource         private VenderServiceInter venderServiceInter 改成 @autowired    private VenderServiceInter venderServiceInter 或者     @resource     private VenderServiceInter venderService
疯狂会计 2016-06-29
  • 打赏
  • 举报
回复
能启动起来,但是网页提交表单到controller里时报错 Mapped Statements collection does not contain value for com.abc.service.VenderServiceInter.insertVender

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧