Mybatis-plus 绑定错误提示BindingException:Invalid bound statement的解决方法
一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上。
若上述步骤都检查后还会异常检查下pom.xml文件
一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上。
按以下步骤一一执行:
1、检查xml文件所在的package名称是否和interface对应的package名称一一对应
2、检查xml文件的namespace是否和xml文件的package名称一一对应
3、检查函数名称能否对应上
4、去掉xml文件中的中文注释
5、随意在xml文件中加一个空格或者空行然后保存
若上述步骤都检查后还会异常检查下pom.xml文件
查看是否有添加如下内容
注意:在使用IDEA开发时,如果打包时*Mapper.xml没有自动复制到class输出目录的mapper类包下,则需要在pom文件中添加mybatis加载配置文件的配置!
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*Mapper.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</resource>
</resources>
</build>
这是鉴于已经在application.yml中已经添加过以下代码(根据自己的路径进行修改):
mybatis-plus.mapper-locations=classpath:/com/example/computer/mapper/*Mapper.xml
同时你的xxxMapper文件需要添加@Mapper和@Repository.
你的xxxApplication启动类下,添加:
@MapperScan("com.example.computer.mapper")
注:括号中的路径是你的mapper路径。