今天在写一个简单的Java Springboot项目的时候突然报错:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.oldproject.Mapper.UserMapper.updateUser
报错显示扫描不到 mapper.xml 好歹也是上班这么久了 心里一想这种小问题 我也是随手拿捏了
结局万万没想到
按照网上的解释,一般来说 解决思路如下:
配置包扫描:
package com.example.oldproject;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
// 指定扫描的包路径
@MapperScan("com.oldpro.mapper")
public class OldprojectApplication {
public static void main(String[] args) {
SpringApplication.run(OldprojectApplication.class, args);
}
}
又或者是配置扫描路径 在yaml里面
mybatis:
configuration:
map-underscore-to-camel-case: true
mapper-locations: classpath:/mapper/*.xml
然后我还顺便检查了xml里面的命名大小写是否和mapper接口里面的一致。
检查了很久一直报错 始终无法解决 我想了很多种可能 甚至以为要换电脑了 结果都无法运行 气急败坏之后我花了二十块找人帮我看看 结果竟然是我的yaml的层级有问题 多了空格!!
正确的应该是
一想到学了这么久 竟然因为这种事 花了二十块 我守财奴的心灵受到了暴击 决定记录下来
大家一定要配置好层级,不要乱敲空格。(上班当牛马久了真的会降智 家人们)
如果有帮助到您 感谢一键三连!