出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误的筛查

2023-10-16 08:59:22 浏览数 (1)

这个错误新手经常犯(说的就是我),也就是 dao 接口和 mapper 文件没有绑定映射上。问题很多,我收集了网上大部分遇到的解决方法。照着下面排查就行:

  1. 检查各种路径和名称,返回值是否对上了
    • xml 文件中 <mapper namespace ="xxx"> 地址是否和你所在 Dao接口路径完全一致,名称是否相同
    • xml 文件中的方法名比如<select id = "xxx"> 是否和你所在 Dao 接口中的方法完全一致,名称是否相同
    • xml 文件中的方法返回值是否和 Dao 接口中的完全相同,比如 xml 中返回 string 而 Dao 接口中需要返回对象,这样也会报错,需要重新改成完全相同。
  2. 配置文件问题,是否扫描到 xml 文件
    • 配置路径一定要写好如 mybatis.mapper-locations=classpath:mybatis/mapper/*.xml 确保能扫描到你的 xml 文件。还有配置好映射所在的包名比如 type-aliases-package:xxx 这个路径是否正确。
    • 还有一个我遇到的问题,我的 xml 文件后缀没有加 .xml ,但是我的配置路径上是扫描的 *.xml 。最后也是绑定失败,这个时候重新改过来就好了。

0 人点赞