在项目开发过程中,遇到 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误。

总结原因是因为 扫描不到 xxx.xml 文件

对于这个错误,我总结了以下三种情况,希望对您有所帮助。

情况 1. idea的编译问题

idea有的时候没有编译生成相应的xml。在idea 项目的 target/classes 下面没有找到对应的 mapper.xml文件。
在这里插入图片描述
说明项目没有编译,依次点击 build --> rebuild project。
在这里插入图片描述
编译完成将会出现xml文件

在这里插入图片描述

情况 2. xxx.xml 文件没有按照传统的maven架构进行放置

在构建工程的时候,如果我们的 ×××.xml 文件没有放到 src/main/resources 下面,是不会被maven build plugin给默认扫描到的。此时需要在 pom文件的 build 标签里面加入:

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

情况 3. 代码层面的问题

主要检查包名,namespace,方法名等能否对应上。开发过程中有时候敲错一个字母都有问题,需要认真的检查。对于这块地方,建议粘贴复制,不要自己手敲。

1.xml 文件中是有中文注释,有的话全部删除
2. xml 的文件名 是否与 dao 接口名保持一致
在这里插入图片描述

3. 检查 xml 文件的 namespace 是否和 dao 接口的包名称对应
在这里插入图片描述

4.检查 xml 文件里面的 id 是否和 dao 接口的方法名是否一致
在这里插入图片描述
在这里插入图片描述
5. 架构层面的错误
配置文件里面,在spring与mybatis整合,以及扫描dao层中的java接口类的时候,路径是否正确。
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐