全网搜了关于这个异常的解决办法 大概有如下几个原因: 但是最后一条是我自己总结的也会发生此种错误!!!!
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 是 MyBatis 框架的一个异常,表示找不到指定的 SQL 语句映射。
该异常通常出现在以下几种情况下:
-
在配置文件中没有正确定义或配置了 SQL 语句映射。请检查你的 MyBatis 配置文件或映射文件,确保正确定义了你所使用的 SQL 语句。
-
在项目中使用了错误的语句 ID。请确保你在调用 SQL 语句时使用了正确的语句 ID,语句 ID 应与映射文件中定义的 ID 保持一致。
-
映射文件中未正确引入或导入了 SQL 语句。请检查你的映射文件,确保正确引入了你所需要的 SQL 语句。
-
映射文件的命名空间(namespace)配置错误。请确保你的映射文件中的命名空间与你所使用的接口或配置文件保持一致。
如果以上方法仍无法解决该异常,建议检查 MyBatis 版本是否与项目相匹配,或尝试重新编译和部署项目。
以上都不是,那么要看下我们的启动类了!!!
@MapperScan(basePackages = {"com.xxx.module.maintain.mapper","com.xxx.module.collect.dao", "com.xxx.module.schedule.mapper"})
@EnableSchedling @EnableAsync @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) // 禁用数据源自动配置 public class ApplicationLauncher extends SpringBootServletInitializer {
注意 @MapperScan(basePackages = {"com.xxx.module.maintain.*",}) 此处要扫描包下mapper的所有不能使用一个※ ,使用后 单独注入 mapper 是好用的但是假象, 要注入他的上层serviece 就会报上边的错误!
处理方案 @MapperScan(basePackages = {"com.xxx.module.maintain.mapper"} 直接加上包名