SpringBoot集成Mybatis中找不到Mapper层的接口

一只开发狗001 2018-07-25 10:15:17
在Springboot继承了Mybatis后调用controller中的接口显示的是 找不到Mapper中的接口

主类上已经加上了@MapperScan

@SpringBootApplication
@MapperScan("com.xxx.xxxx.dao")
public class VisualDataAnalysisPlatformApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder applicati


application.yml中maybatis中的配置大概也没问题

mybatis:
type-aliases-package: com.xxxx.xxxx.entity
mapper-locations: classpath:com.xxx.xxxx.mapper/*.xml


依然报错
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): xxx
...全文
6110 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wb_csdn_job 2019-07-23
  • 打赏
  • 举报
回复 1
我的问题跟你一样,但是各种方法都试了,还是不行
sky_milong 2019-07-10
  • 打赏
  • 举报
回复
引用 5 楼 路漫漫其修远兮_吾将上下而求索 的回复:
1、@MapperScan(basePackages = {"com.xxx.xxxx.dao"}) 2、mapper-locations: classpath:com.xxx.xxxx.mapper/*.xml,这里你找下编译后的文件,看看在不在classes中, 我怀疑你的资源文件路径不对
感谢,同样的问题解决了
一只开发狗001 2018-07-26
  • 打赏
  • 举报
回复 1
已经解决感谢各位,总结一下,除了要在启动类(主类)上加上@MapperScan("dao接口类地址"),还要再Mapper层也就是dao接口类中进行@Mapper注解(不然无法找到bean),如果需要用到Mapper.xml配置sql的话就需要在application.yml配置中的 mybatis中将 mapper-locations: classpath:/mapper/*.xml 配置出来,但是要记住mapper前面要用“/ ”隔开而不是 “ .”而且Mapper.xml要放在 resources 下面。如果是在dao接口类中使用@Select,@Update等增删改查的注解的话,在 yml配置中就不需要 mapper-locations的配置。不过建议两个都用比较好,像是比较简单的直接注解进行sql,比较复杂的在xml里配置还是比较爽的。
stacksoverflow 2018-07-25
  • 打赏
  • 举报
回复
信息提供的比较模糊
Invalid bound statement (not found): xxx
要隐藏公司信息没错,但至少不要所有字符都用xxx来表示,否则看不出错误。
一只开发狗001 2018-07-25
  • 打赏
  • 举报
回复
引用 1 楼 shangjianli 的回复:
@MapperScan("com.xxx.xxxx.dao.*")

这里改过之后还是不行,报的还是哪个错。
看来不是这里的问题,可是貌似这种清空就是启动类加这个和mapper层里加上@Mapper 帮忙看一下我的Mapper层中有什么不妥谢谢
@Mapper
@Repository
@MapperScan
public interface TestMapper {

List<Map> TestList();

int count();
}

这里面的@MapperScan去掉或也加上dao的地址目前来说都无济于事
戎码一生灬 2018-07-25
  • 打赏
  • 举报
回复
@MapperScan("com.xxx.xxxx.dao.*")
  • 打赏
  • 举报
回复
1、@MapperScan(basePackages = {"com.xxx.xxxx.dao"})
2、mapper-locations: classpath:com.xxx.xxxx.mapper/*.xml,这里你找下编译后的文件,看看在不在classes中,
我怀疑你的资源文件路径不对
一只开发狗001 2018-07-25
  • 打赏
  • 举报
回复 1
引用 3 楼 stacksoverflow 的回复:
信息提供的比较模糊
Invalid bound statement (not found): xxx
要隐藏公司信息没错,但至少不要所有字符都用xxx来表示,否则看不出错误。

这里的xxx是我Mapper类里的接口,大概意思是说没有找到这个接口,无效绑定

81,122

社区成员

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

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