关于idea 中使用mybatis报出 Invalid bound statement (not found)的错误解决方案

Mapper绑定映射文件失败

关于idea 中使用mybatis报出 Invalid bound statement (not found)的错误解决方案

引言
在实际项目,搭建mybatis会爆出 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 这个错误非常的头疼,如图1,不知道为什么mybatis就是找不到对应的xml文件。博主整理了三种可能的情况,三种情况下肯定有一种能帮助到你。

情况一:mapper.xml没有按照传统的maven架构进行放置

如果我们的mapper.xml文件没有放置到src-main-resources下面,是不会被maven build plugin给默认扫描到的。此时需要修改启动的模块的pom文件,在build标签里面加入


    
        
            src/main/java
            
                **/*.xml
                **/*.properties
            
            true
        
        
            src/main/resources
            
                **/*.xml
                **/*.properties
            
            true
        
    

推荐在Project Structure -> Modules中将你存放mapper的包给标注成resources

情况二:mybatis的配置信息出错

        mybatis-plus.mapper-locations=classpath*:/mapper/**Mapper.xml
        mybatis-plus.typeAliasesPackage=com.yuxun.**.entity
        mybatis-plus.defaultStatementTimeout=120
        mybatis-plus.config-locations=classpath:config/mybatis-config.xml

其中mybatis-plus.mapper-locations是写mapper编译过后的位置和名称,
可参看下图

情况三:idea的编译问题

该种情况非常的莫名其妙,可能是内存爆满的原因导致的,idea有的时候没有编译生成相应的xml。在idea的target->classes下面没有找到相应的存在xml的文件夹,该文件夹里面有没有对应的mapper(实体名).xml文件,如图2。此时就算你采用重启idea,Invalidate caches等方式都不管用![在这里插入图片描述]关于idea 中使用mybatis报出 Invalid bound statement (not found)的错误解决方案_第1张图片
第三种情况常常见于,本来项目好好的可以扫描到mybatis的配置的,但是加了一个方法或者某一次run起来就突然报这个错误的情况。

你可能感兴趣的:(关于idea 中使用mybatis报出 Invalid bound statement (not found)的错误解决方案)