Invalid bound statement (not found): com.hello.mapper.UserMapper.queryUserName
时间: 2023-11-20 09:55:47 浏览: 106
这个错误通常是因为Mybatis无法找到对应的Mapper文件或者Mapper文件中没有定义对应的SQL语句。解决方案如下:
1. 确认Mapper文件路径是否正确,可以在Mybatis配置文件中检查mapper-locations配置是否正确。
2. 确认Mapper文件名是否正确,需要注意Mapper文件名必须以.xml结尾。
3. 确认Mapper文件中是否定义了对应的SQL语句,可以检查Mapper文件中是否有对应的<select>标签,并且id属性是否与Mapper接口中的方法名一致。
4. 确认Mapper接口的包路径是否正确,可以检查Mapper接口的包路径是否与Mybatis配置文件中的mapper接口扫描路径一致。
5. 确认Mapper接口中的方法名是否正确,可以检查Mapper接口中的方法名是否与Mapper文件中的id属性一致。
下面是一个可能的解决方案:
1. 确认Mapper文件路径是否正确,可以在Mybatis配置文件中检查mapper-locations配置是否正确。
```xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>
</bean>
```
2. 确认Mapper文件名是否正确,需要注意Mapper文件名必须以.xml结尾。
3. 确认Mapper文件中是否定义了对应的SQL语句,可以检查Mapper文件中是否有对应的<select>标签,并且id属性是否与Mapper接口中的方法名一致。
```xml
<!-- UserMapper.xml -->
<mapper namespace="com.hello.mapper.UserMapper">
<select id="queryUserName" resultType="java.lang.String">
select user_name from user where user_id = #{userId}
</select>
</mapper>
```
4. 确认Mapper接口的包路径是否正确,可以检查Mapper接口的包路径是否与Mybatis配置文件中的mapper接口扫描路径一致。
```xml
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.hello.mapper"/>
</bean>
```
5. 确认Mapper接口中的方法名是否正确,可以检查Mapper接口中的方法名是否与Mapper文件中的id属性一致。
```java
// UserMapper.java
public interface UserMapper {
String queryUserName(@Param("userId") Long userId);
}
```
阅读全文