org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。
截图为网络中搜索到的常见原因:
照着修改之后,问题依旧存在。最终花费了好大的力气才找到自己代码问题的根源。dao接口与xml的文件名不一致。
接口名与接口文件名都是DepartmentDao, 而配置文件名为DeparmentDao.xml,费了很大的劲才看到两者名字查一个t字母。修改后就一切正常了。
这是一个很容易忽视的点,记住:接口名与Mybatis的映射文件名一定要一模一样。
以上是网上别人发现类似的错误的原因,我这边经过排查发现我这边出现别的问题,记下来以便后续不会再犯同样错误:
我在配置文件中配置的mybatis配置信息如下:
mybatis:
mapper-locations: classpath:mybatis/**/*Mapper.xml
type-aliases-package: com.xinpoint.whs.entity
扫描的文件命名必须是以Mapper.xml结尾,而我发现我的mybatis文件是没以这个结尾:
故springboot在扫描这个mybatis映射文件时扫描不到,故报找不到这个持久化类,需要将整个文件名改为SysEmailcfgMapper.xml文件才行。