全方位解答springboot下出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)异常

首先是问题出现在用xml配置mybatis的mapper中,原理是mapper与xml没有映射成功,遵循着这个方向,我们来梳理一下常见的错误原因:

一、xml文件

1.xml文件中的<mapper namespace="xxxMapper">配置路径出了问题,路径不对或有空格等等(使用generatorConfig生成的跳过此条)

2.xml文件中<select id="xxxr">的id与mapper中的不对应

3.parameterType使用问题,未跟实体类对应

3.resultType和rusultMap的使用问题,常见返回值是list的,未正确使用resultMap

4.有时候随便动一下xml文件,换个行之类的就能用了

5.注意mapper文件在java下,xml文件在resources下

二、pom文件

没这段话的就加上去

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

三、yml文件

mybatis:
  # 映射文件所在路径
  mapper-locations: classpath:mappers/*.xml
  # pojo类所在包路径
  type-aliases-package: com.example.test.view.models

1.路径中的拼写错误,常见乱加空格、mapper和mappers问题,加不加s对应自己的文件夹就好

2.文件目录错误,如自己在resources下面建立了多层文件夹,看起来是这样的

由于idea编译器的显示问题,此时并不知道xxx.xxx.xxx是一个名为xxx.xxx.xxx的文件夹还是三个名称都为xxx的文件夹,就容易出现错误,三层文件的创建方式为

同理有的新手在上面的pojo类所在路径也由于包创建问题导致读不出来,建议想不起来的自己refactor改一下

四、用SqlSessionFactory的,在实现时加下面下面这句,原理与yml配置方式一致

bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*Mapper.xml"));

五、mybatis和mybatis plus冲突了,导致在maven里多次引用jar包,检查一下,或者删去mybatis plus试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值