环境:spring注入mybatis 工具:Intelij IDEA
报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
第一种:(创建包错误)
映射文件要在resources文件下创建附上对应的包路径,与Dao接口包路径必须一致。千万不要再运行中的时候创建否则Intelij IDEA会识别不到 报错
创建之后发现还是报同样的错,很多人会发现路径和配置文件都没报错为什么还是识别不到,这里需要再细讲一下了resources目录下创建的包必须以 / 来分割包名;
如图片上例子 com/imooc/hosp/dao 这种形式创建包名。如果还是报Invalid bound statement (not found),继续讲第二种。
第二种:(创建包没问题,xml文件出错)
mapper namespace=“写准确dao类的全路径”,很多复制配置文件修改时候忘记把命名空间也修改的。然后修改后进行格式化,删除多余的行以免出现空字符影响sql运行, 重启服务器。如果还是出错,我们看第三种。
第三种: (创建包没问题,xml文件没问题)
我们来看spring注入mybatis的Mapper时,把basePackage属性value写错,或者没有写backPackage属性。
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.imooc.hosp.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
value把dao包全路径写对,org.apache.ibatis.binding.BindingException基本解决