Invalid bound statement (not found)
在使用mybatis时,有时候会出现一些逻辑上解释不通的错误,这个时候就需要一本排错指南,记住这些常见的错误。
出现错误并不代表他复杂且难以理解,在有时候,某些错误就和电脑重开机就能解决90%的问题一样,充满玄学。
第一种:语法错误
Java DAO层接口
1 | public void delete(@Param("id")String id); |
Java 对应的mapper.xml文件:
1 |
|
检查:1. 接口中方法名(delete)与xml文件中 id=”delete”是否一致
2. xml文件中的 namespace=”xxx.xxx.xxx.Mapper” 中的路径是否与接口文件路径一致
3.parameterType类型 与 resultType类型是否准确;resultMap与resultType是不一样的。
第二种:编译错误
定位到项目路径下:target\classes\ 中报错路径下,寻找对应的xml文件是否存在。
(1)若不存在对应的xml文件,则需要在pom.xml中加入以下代码:
1 | <build> |
删除classes文件夹中文件,重新编译,出现了对应的xml文件即可。
(2)若存在xml文件,则打开xml文件,检查其中报错部分是否与源文件一致,不一致,则
先清除classes文件夹中文件,执行命令:mvn clean 清理内容,重新编译后即可。
第三种:配置错误
在配置文件中指定扫描包时,配置路径有问题。例如:spring配置文件中”basePackage” 属性包名的指定一定要具体到接口所在包,而不要写父级甚至更高级别的包 ,否则可能出现问题;cn.dao 与cn.*也可能导致错误;注解扫描时,可能没有扫描到包等。
第四种 细节错误
比如:
忘记在配置文件上加别名
忘记开启驼峰命名法
1 | mybatis: |
第五种 弱智型错误
再比如:
文件头没加@MapperSacn
或者是xml的文件头没加:
1 |