【error处理】org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

本文解决了一个关于 MyBatis Plus 的 BindingException 问题,详细分析了错误原因并提供了两种有效的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题分析

在这里插入图片描述

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.atguigu.eduservice.mapper.EduCourseMapper.getPublishCourseInfo
	at com.baomidou.mybatisplus.core.override.PageMapperMethod$SqlCommand.<init>(PageMapperMethod.java:261)
	at com.baomidou.mybatisplus.core.override.PageMapperMethod.<init>(PageMapperMethod.java:58)
	at com.baomidou.mybatisplus.core.override.PageMapperProxy.cachedMapperMethod(PageMapperProxy.java:70)
	at com.baomidou.mybatisplus.core.override.PageMapperProxy.invoke(PageMapperProxy.java:63)
	at com.sun.proxy.$Proxy96.getPublishCourseInfo(Unknown Source)
  • 划重点: BindingException: Invalid bound statement (not found)

  • 分析:意思就是出现了绑定异常,无效的绑定声明,或者说绑定找不到了。

  • 然后再看问题出现的位置是在com.atguigu.eduservice.mapper.EduCourseMapper.getPublishCourseInfo,也就是mapper里边的一个方法。

  • 因此问题就是说mapper里边的getPublishCourseInfo这个方法绑定的xml找不到了,或者说没有和xml里面的方法绑定上。

  • 这是对应的方法的xml

<select id="getPublishCourseInfo" resultType="com.atguigu.eduservice.entity.vo.CoursePublishVo">
<!--此处省略sql语句-->
</select>

二、解决方案

2.1 出现问题的可能原因

  1. 可能原因1: 出现这个问题有可能是一个及其简单的失误,就是xml方法上的id没有和mapper的方法名保持一致,导致mapper的方法在执行的时候找不到对应的xml方法。如果是这个原因,就直接把xml对应的id修改过来就可以了。因此先检查一下是不是这个问题。
  2. 可能原因2: 编译完的代码target当中没有xml。这是由于xml文件放置的位置,以及maven默认的加载机制造成的。maven加载的时候,把java文件夹里面的java类型文件进行编译,如果其他类型的文件,不回加载。简单说就是,xml如果放在mapper的包下,默认不会被加载到target里面。这样编译完的代码在执行的时候就找不到xml,mapper的方法就无法和xml绑定上。

2.2 问题的解决(针对原因2)

2.2.1 方法1

将xml文件拷贝到对应的target文件夹中。

2.2.1 方法2

  • 配置pom文件,这样maven在打包的时候会将java目录中的*.xml文件也进行打包(读者以自己的实际xml位置为准,做修改 )
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>
  • 配置application.properties文件,这样mapper就可以通过这项配置找到xml的位置(读者以自己的实际xml位置为准,做修改 )
#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/guli/edu/mapper/xml/*.xml
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值