【报错】:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

背景

mybatis-Plus自动生成代码之后,由于是多表关联查询,所以在mapper.xml中写sql语句。
在这里插入图片描述

原因分析

第一种可能

xml的select的id和resultType是不是写对的。
如果没问题,就只有第二种可能。

第二种可能

xml写在src/java文件下面。而自己的项目是用的maven创建的。

maven默认只发布src.main.java文件中的java类型文件进行加载,其他类型文件不会加载

所以可以在target中是没有加载我们的xml文件

maven启动之后xml文件为什么写resource文件里面不是java
Maven在构建项目时,默认会将src/main/resources目录下的所有文件复制到项目的输出目录(通常是target/classes),并且这个过程是自动化的。如果你的XML文件不在src/main/resources目录下,Maven在构建过程中就不会将其复制到输出目录,导致最终的jar或者war包中不包含这个XML文件。

解决方案

方案一:

直接把xml文件放在target文件里面,这种方法很直接,但每次修改都要重新改,麻烦【不推荐】

方案二:

把我们xml文件,不要放在java文件里面,放在resources文件里面。但需要改我们的一些扫描文件路径一些。【如果是一次搭建,可以一部到位】如果写了很多,就要斟酌一下。

方案三:【推荐】

在pom.xml中将java目录中的*.xml文件也进行打包

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

在配置文件中指定路径

mybatis-plus.mapper-locations=classpath:com/mycompany/eduservice/mapper/xml/*.xml

在这里插入图片描述
然后项目重新启动,就可以了。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值