org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):mapper.xml丢失问题解决方法

问题背景

当Spring或Spring Boot项目整合MyBatis后启动后访问路径,没有获取到数据库的数据,控制台报以下错误,说明没有找到对应的xml文件。

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

如果去查看编译生成的target文件夹,可以看到target文件夹里的mapper文件夹并没有相应的xml文件。

原因在于,默认情况下,如果没有指定resources,目前认为自动会将src/main/resources下的.xml文件放到target里头的classes文件夹下的package下的文件夹里。

那按照这个设定来讲,当然是会忽略其他位置的xml文件,因此自己需要手动配置来让mapper在编译后添加到target文件夹里。

解决方法

在build父标签中添加resources信息。resources用来哪些文件是否应该被迁移到编译后的文件夹中。将xml文件标记为应该迁移的文件后,便不会报出没有发现文件的异常。

在pom.xml中添加如下配置,因为我项目的mapper放在src目录下:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

添加后重新编译,如果mapper有被添加到target文件夹中,便可以成功运行项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值