org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误
按以下步骤一一执行:
1:检查xml文件所在的package名称是否和interface对应的package名称一一对应
2:检查xml文件的namespace是否和xml文件的package名称一一对应
3:检查函数名称能否对应上
4:去掉xml文件中的中文注释
5:随意在xml文件中加一个空格或者空行然后保存
但是,当我发现依次按照上面做了之后发现我的都是对的,而且诡异的是,我在eclipse中启动项目,项目是对的,可以正常运行,这个时候让我百思不得解,然后通过远程debug才发现,原来mybatis的代理类有一个methodCache属性为空,这不明显说明*mapper.xml文件根本没有找到吗???
但是我的xml文件都已经打包到项目jar包中了,最后我想到了一段配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath*:**/*Mapper.xml"/> </bean>
于是,我猜想这样通过类路径没能找到,看源码发现classpath*:这种写法是对的,于是我就觉得是不是那后的**导致问题的,于是更改为下面,尝试一下,ok了。心累啊。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath*:mapper/**/*Mapper.xml"/> </bean>
相关推荐
在使用Mybatis-Plus时,有时开发者可能会遇到一个常见的错误——`Invalid bound statement (not found)`。这个错误意味着Mybatis-Plus无法找到对应的SQL映射语句,这通常是由于配置问题或者依赖缺失所引起的。本文将...
在使用MybatisPlus时,有时会遇到一个常见的错误——`Invalid bound statement (not found)`,这个错误通常发生在尝试调用BaseMapper中自动生成的方法时。本文将深入探讨这个问题的成因以及解决方法。 首先,`...
在使用MyBatisPlus进行开发时,可能会遇到一个常见的错误——`Invalid bound statement (not found)`。这个错误通常表示MyBatisPlus无法找到你尝试调用的Mapper接口的方法。本文将详细解析这个问题的原因以及提供...
- "mybatis错误:Invalid bound statement (not found) -SELECT分页.url":这可能是一个常见问题,可能是由于Mapper接口与XML文件中的SQL语句未匹配导致,需要检查相关配置。 - "3使用MySQL的jdbc驱动关于时区引发的...
在上述问题中,报错信息是`org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)`,这通常意味着Mybatis-Plus无法找到对应的Mapper方法。让我们分析一下可能的原因和解决方案: 1. **...
如果遇到错误`org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.offcn.mapper.UserMapper.getUserList`,通常是因为映射文件的位置不正确或未包含在构建过程中。你可以尝试...