Invalid bound statement (not found)我的case

这篇博客记录了在解决MyBatis映射问题时的排查过程,包括检查mapper.xml的namespace、方法名与接口的对应、资源路径、ResultMap配置、mapper配置等常见错误。在尝试多种解决方案后,发现问题出在mapper-locations的配置,由于配置文件的读取位置不正确导致。修正配置文件的位置或格式后,问题得到解决,提醒开发者注意配置文件的正确引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先抄录下其他的解决办法,但并不是我遇到过的问题:

1.mapper.xml中的namespace和实际的mapper文件不一致

2.mapper接口中的方法名和mapper.xml中的id标签不一致

3.上两步的问题都没有,但是还是不行,可能原因就是,没有构建进去,打开target看看对应的mapper.xml文件在不在

4.xxxMapper.java的方法返回值是List,而select元素没有正确配置ResultMap,或者只配置ResultType

5.看下mapper的XML配置路径是否正确,比如:resource目录下的mapper,yml文件却写的mappers;再比如你的mapper放在其他目录下

6.pom.xml文件中配置resource,不然mapper.xml文件就会被漏掉!pom.xml的中配置了resource

7.检查mybatis.mapper-locations有没有写对

以上步骤都试过,都还是报错。

最后,我大概判断应该还是mapper-locations问题,因为反复检查过之后,我的代码是用了generator去生成的,我配置了一个generatorConfig.xml,然后又配置了一个mybaties-generate.properties,但是,这个properties原本是别人打算拿来当application.properties启动配置的,而我直接改成了单独拿来生成代码的配置文件。

所以,这里面的这两个配置参数就相当于没在application.yml里读到:

mybatis.mapper-locations=classpath:mapper/*Mapper.xml

mybatis.type-aliases-package=com.zjqiu.erp.examination.model.dto

将两个参数移回去yml里之后,便能读成功。

又或者,可以直接把mybaties-generate.properties变回去application.properties,也可以生效,一切都是粗心的结果。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值