MENU

Mybatis报错Invalid bound statement (not found)

摘要

Invalid bound statement (not found)是一个很玄学的一个错误,出现问题的原因有很多种可能
具体报错信息:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.wanvale.mapper.EmployeeMapper.addEmp

问题分析

其实就是Mapper.xml出问题了,具体问题可以按照以下方法排查!

namespace不对

检查你的XxxMapper.xml中

<mapper namespace="com.xxx.xxx.XxxxMapper">

是否和你的Mapper全限定类名一致

方法名和id不一致

检查xml文件中的

<select|update|delete|insert id="xxxXxxxx">

和你的XxxxMapper.java中的方法名是否对应

解决方法

如果上面两种并没有解决你的问题,那你可能跟我一样
看一下我的目录结构
1.jpg
可以看得出来,EmployeeMapper.xml并没有被打包,mapper包下只有一个EmployeeMapper.class
所以提供一个解决办法:在maven中<build>标签中加入打包xml的标签

    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>

当然,图方便,我直接在resources下新建一个同名的mapper包了
2.jpg
注意:这里一定不要用"."而是用"" 否则建立的目录是一层而不是三层
之后再次运行JUnit,问题解决
3.jpg


文章标题:Mybatis报错Invalid bound statement (not found)
如果文中内容侵犯了您的权益,请及时与博主取得联系进行删除!
本站文章未经许可禁止转载,本文地址:https://blog.wanvale.com/archives/82/

Last Modified: April 21, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code