记录一次犯傻经历,折腾一个小时
Invalid bound statement
就是Dao层文件与mapper.xml映射失败。
常见错误类型
一、POM.xml
maven加载资源没有吧mapper.xml扫描进去,查看一下pom.xml的资源加载配置,在生成的target文件夹下,查看mapper文件是否加载进去了。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
二、参数类型绑定问题以及返回值类型错误问题,自己细心一些。
三、配置文件错误
mapperlocation是指存放mapper文件的地址。idea会根据你配的地址去找xml文件,如果地址配置错了,则找不到xml文件。但是如果mapper.xml放在resource文件夹下以及pom.xml配置正确的情况下,mapper.xml文件也会在target文件夹出现,运行时还会报Invalid bound statement的错误。
mybatis:
mapper-locations: classpath:mappers/*.xml
自己就是第三种错误,一直以为是pom.xml配置出错,后面查看yml文件才发现自己更新了xml文件地址,但是yml配置文件的地址没有同步更新,所以配置mapper地址一定要细心。