解决问题:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

在使用springboot集成mybatis时,可能会遇到这个问题。

出现这个问题的原因一般是:

  • Mapper interface和xml文件的定义对应不上(需要检查包名,namespace)

  • 函数名称等能否对应不上(需要比较细致的对比,经常就写错了一两个字母搞的很长时间找不到错误)

解决的思路一般是:

  • 检查xml文件所在的package名称是否和interface对应的package名称一一对应

  • 检查xml文件的namespace是否和xml文件的package名称一一对应

  • 检查函数名称能否对应上

  • 去掉xml文件中的中文注释

  • 随意在xml文件中加一个空格或者空行然后保存

如果上面的检查过都没有问题,那么可以试下下面操作:
因为它可能是因为 xml文件的编译问题。
可以对比下编译前和编译后的文件。
确定是 没有将xml文件编译进去,那怎样解决呢?
  • 解决方式一:把*Mapper.xml文件放到resource文件夹下管理

  • 解决方式二:在pom.xml中的build的标签中加入以下内容:

复制代码
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.xml</include>
            <include>**/*.properties</include>
        </includes>
        <filtering>true</filtering>
    </resource>
</resources>
复制代码

参考:https://www.jianshu.com/p/2bd1e5313b66

posted @   Vincent-yuan  阅读(241)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2019-10-31 微服务之部署
点击右上角即可分享
微信分享提示