首页 > 其他分享 >mybatis: Invalid bound statement (not found): com.xxx.mapper.xxxMapper.selectByxx

mybatis: Invalid bound statement (not found): com.xxx.mapper.xxxMapper.selectByxx

时间:2022-12-27 11:25:11浏览次数:37  
标签:xml mapper Mapper xxx 扫描 selectByxx xxxMapper 接口类

背景:

业务功能开发,新增一些查询功能,对应地创建了一个 mapper 接口类,一个 mapper.xml 文件。

这个mapper 的命名是: Rolemapper.xml (盯着它)

什么namespace, 方法名都没有名,
但是在执行方法查询的时候,却冒出了一个错误:

Invalid bound statement (not found): com.xxx.mapper.xxxmapper.selectByxx

多次检查,确实没发现什么问题,
网上找的一些解决方案,都检查了一次。
连idea 都清cache重启了一次,但还是不行。

看现象,就是这个 mapper 没有被扫描到。

怎么会出现这样的情况呢?

问题定位过程

那些百度上找的答案,一一核对过,没发现问题。
然后,把这个查询方法,写到另外一个原有的 mapper 上面, sql也添加到对应的 mapper.xml 文件上。—— 可以调用。

那基本上可以确定,就是新增的这个 mapper 的原因了。但就这么简单的一个 mapper 接口类,怎么看怎么没有问题,那问题可以出现在哪里呢?

为什么之前的 mapper 接口类可以,新增的 mapper 类不行呢?

问题发现

其实刚才已经知道就是新增的 mapper 没有扫描到而引起的原因,再看一下,为什么没有扫描到呢?
确实找了好一会儿,同事说,你这个 mapper 接口类,名字的这个 "mapper" 应该改为 "Mapper" —— 恍然大悟。emmm,,, 有够低级的。

知道了答案再找原因,就很容易了,看一下,我们的Mybatis 扫描配置, 是这样写的:

mybatis:
  mapper-locations:
    classpath*:sqlmap/*/*Mapper.xml,classpath*:sqlmap/*Mapper.xml   
   (请看这里,它只会扫描  *Mapper.xml !!!!  小写的  *mapper.xml 它就不认了!!!!!!!)

我特么。。。。害。
定位问题的方向,一开始就没往这里找,。。。emmmm。

行吧。记录一下。可能也有小伙伴会出现类似的问题,不一小心就很容易出错,虽然低级,但容易出错。

标签:xml,mapper,Mapper,xxx,扫描,selectByxx,xxxMapper,接口类
From: https://www.cnblogs.com/aaacarrot/p/17007647.html

相关文章