org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):无效的绑定语句(未找到):

文章讲述了在遇到MyBatis的BindingException,提示未找到映射语句时,问题源于maven默认不加载非.java文件。解决方案包括将XML文件移至resources目录,或者在pom.xml中配置扫描路径,以及在application.properties中指定mapper文件位置。

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

报错

在这里插入图片描述

org.apache.ibatis.binding.BindingException: 
Invalid bound statement (not found):

无效的绑定语句(未找到):com.atProject.zhkt.vod.mapper.CourseMapper.selectCoursePublishVoById

原因

maven加载机制:
maven默认情况下,在src-main-java目录下面,maven只会加载java类型文件,其他类型文件不会加载的
如图:
在这里插入图片描述
target文件中没有xml文件,说明在src-main-java目录下面,maven只会加载java类型文件,其他类型文件不会加载的

解决:

1、直接复制xml文件到target文件中(破坏文件结构不建议)
2、在xml放到resources目录下(破坏文件结构,后续新建xml都要复制)
3、通过配置方式自动加载(直接进这个模块的父工程pom文件下配置xml文件扫描路径)
分为两方面pom.xml 和application

(1):在pom文件project标签内添加扫描路径

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes> <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

(2)在resource文件的properties文件配置扫描路径
在这里插入图片描述

#配置xml扫描路径
mybatis-plus.mapper-locations=classpath:com/atProject/zhkt/vod/mapper/xml/*.xml

解决啦hhh,有帮到你请留个赞让我知道帮到你了,一起快乐翻倍!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值