SpringBoot整合Mybatis报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
报错信息
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): xyh.crm.dao.RootMapper.getGroupsByRootId
…
根据报错的信息可以猜到未找到sql语句
问题大概分为以下几类
- 第一种:(先说最有可能错的地方)mapepr文件在编译的时候mapper文件未被打包进去,具体可以查看target->classes->com.example->dao(mapper目录)看里面是否有mapper文件,若没有则说明mapper文件确实在打包的时候被过滤了,那么该怎么解决呢,请往下看
- 解决方案:在pom.xml文件中添加resources如下(就是告诉maven在编译打包的时候把mapper文件打包进去,这个想必你们看得懂
<resources> <!--mapper--> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources>
- 第二种:检查一下启动类是否添加如下注解(扫描mapepr)
@MapperScan(“xyh.crm.dao”)
嗯,我们想到的大概就是这些错误,如果还不能解决的话说出来大家一起讨论一下~