mybatis绑定异常:报错BindingException: Invalid bound statement (not found):com....xxxMapper解决

mybatis绑定异常:报错BindingException: Invalid bound statement (not found):com…xxxMapper
用swagger测试controller时,报这个错误,不是第一次了 。
给我抓瞎了
我这里报错的是找不到xxmaper.xx方法
我特地去mapper接口里看了一眼

IPage<Books> dynamicQuery(IPage<Books> page, @Param("bqc") BooksQueryCondition bqc);

这个不搁着呢???怎么没有呢
然后我去百度了一下有那么几种解决办法

  1. 查看接口的命名与mapper命名是否一样在这里插入图片描述这是我用idea里的插件生成出来的的,不建议大家这样做,自己写比较好。这俩就是一样的,所以不是命名的问题。
  2. 检查注解在这里插入图片描述人家写的还有一个@componen注解,我也跟着加了一个,事实证明,没有解决问题,所以我又删掉了。
  3. 检查xxMapper.xml的命名空间是不是绑定的正确的接口在这里插入图片描述很好我的命名空间也是对的,因为是生成出来的所以是对的,如果是自己写的,还是要检查一下。
  4. 解决了我的问题 我也不知道为什么没扫描到我的接口方法,只扫描到了mapper.xml
    在依赖中加入如下
<resources>
            <resource>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/mappers</directory>
                <includes>
                    <include>*.xml </include>
                </includes>
            </resource>
        </resources>

在这里插入图片描述整体是这样

上一次就是这么解决的,忘记借鉴的哪位仁兄的,拜谢。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
当出现"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> ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值