mybatis绑定错误:BindingException: Invalid bound statement (not found)

 最近跟着视频写一个实战项目,使用了mybatis,遇到了如下的问题

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.imooc.oa.dao.DepartmentDao.selectAll

百度了一天也没有解决,最后在一个个人博客里看到了解决方案:

在resource文件夹下的文件要这样命名 com/imooc/oa/dao 而不是com.imooc.oa.dao

我最开始是上面这样命名创建文件夹的,但是这样一直出错,然后我改成了下面这样:

改成这样就没问题了。

当出现"BindingException: Invalid bound statement (not found)"错误时,通常是因为MyBatis无法找到绑定的SQL语句。这可能是由于以下原因导致的: 1. SQL语句未正确配置:请确保在MyBatis的配置文件中正确配置了SQL语句。检查是否存在拼写错误、大小写错误或者语句ID错误等问题。 2. Mapper接口方法与SQL语句不匹配:请确保Mapper接口方法的名称与SQL语句的ID相匹配。如果方法名与SQL语句ID不一致,MyBatis将无法找到正确的SQL语句。 3. Mapper接口方法参数不正确:请确保Mapper接口方法的参数与SQL语句中的参数一致。如果参数不匹配,MyBatis将无法正确绑定SQL语句。 4. Mapper接口方法返回类型不正确:请确保Mapper接口方法的返回类型与SQL语句中的返回类型一致。如果返回类型不匹配,MyBatis将无法正确处理结果。 解决这个问题的方法包括: 1. 检查SQL语句的配置,确保语句ID正确,并且语句没有拼写错误或其他语法错误。 2. 检查Mapper接口方法的名称、参数和返回类型,确保与SQL语句的配置相匹配。 3. 检查MyBatis的配置文件,确保正确加载了Mapper接口和SQL语句的映射关系。 4. 如果使用了注解方式配置SQL语句,确保注解的值与SQL语句ID相匹配。 5. 如果使用了XML方式配置SQL语句,确保XML文件中正确定义了SQL语句,并且文件路径正确。 以下是一个示例,展示了如何解决"BindingException: Invalid bound statement (not found)"错误: ```java // Mapper接口 public interface CourseMapper { @Select("SELECT * FROM course WHERE id = #{id}") Course getCourseById(@Param("id") Long id); } // MyBatis配置文件 <mapper namespace="com.example.mapper.CourseMapper"> <select id="getCourseById" resultType="com.example.model.Course"> SELECT * FROM course WHERE id = #{id} </select> </mapper> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值