spring boot整合mybatis-plus在Maven多模块项目中可能会遇到自定义SQL在执行时报:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)...的错误,其实大多数情况下都是找不到自定义 XML 文件,也就是配置 XML 扫描路径错误所引起的异常。
在多模块项目中,我们可以通过以下步骤进行检查:
1、检查父子模块中的pom文件中的依赖是否配置正确
2、检查当前模块的pom中是否配置静态资源扫描路径
注:通常XML 文件是不能放在 java 文件夹中的,IDEA 默认不会编译源码文件夹中的 XML 文件,可以参照以下方式解决:
1.将配置文件放在 resource 文件夹中
2.可指定 POM 文件的 resource
<build>
<resources>
<resource>
<!-- xml放在java目录下-->
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--指定资源的位置(xml放在resources下,可以不用指定)-->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
3、检查.properties配置文件中的路径是否配置正确
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
注:Maven 多模块项目的扫描路径需以 classpath*:
开头 (即加载多个 jar 包下的 XML 文件)
4、检查自定义SQL语句是否正确,映射器中接口是否正确
篇外:小编项目中使用的mybatis-plus依赖:
<!-- 持久层框架依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>