org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): Dao.loginMapper.getUser
时间: 2023-07-08 20:49:06 浏览: 133
这个错误通常是由于 MyBatis 找不到对应的映射文件或者映射文件中没有对应的 SQL 语句引起的。请检查你的映射文件和 SQL 语句是否正确,并且与你的代码中的 namespace 和 id 是否匹配。
首先,请检查你的映射文件是否在 MyBatis 的配置文件中正确配置了。例如,如果你的映射文件名为 `loginMapper.xml`,那么你应该在配置文件中添加以下内容:
```xml
<mappers>
<mapper resource="com/example/mapper/loginMapper.xml"/>
</mappers>
```
然后,请检查你的映射文件中是否包含名为 `getUser` 的 SQL 语句,并且 namespace 是否与你的代码中的一致。例如,如果你的映射文件中包含以下 SQL 语句:
```xml
<!-- loginMapper.xml -->
<mapper namespace="com.example.mapper.loginMapper">
<select id="getUser" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
那么你的代码中应该包含以下内容:
```java
// UserDao.java
package com.example.dao;
import com.example.entity.User;
public interface UserDao {
User getUser(int id);
}
```
```xml
<!-- UserDao.xml -->
<mapper namespace="com.example.dao.UserDao">
<select id="getUser" parameterType="int" resultMap="userMap">
select * from user where id = #{id}
</select>
<resultMap id="userMap" type="com.example.entity.User">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
</mapper>
```
最后,请确保你的映射文件和接口文件在同一个包下,并且映射文件的命名规则为 `接口名.xml`。如果仍然无法解决问题,请检查日志文件以获取更多详细信息。
阅读全文