MyBatis-Plus找不到Mapper.xml文件的几种解决方法
作者:Stone?Lio 发布时间:2023-11-24 03:37:52
在整合SpringBoot和Mybatis-plus时,想写自定义的sql,所以创建了Mapper.xml文件,但是启动后却老是报错:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
很明显,是Mapper.xml未被扫描到。
此类问题的解决方式实际上都是配置上有问题,以下列出了一些解决方式。
方式1:Mapper的命名空间和Dao层的接口。
Mapper.xml文件中,<mapper namespace="这里填写映射的Mapper.java完整路径,如:com.test.Mapper">
方式2:如果Mapper.xml文件是放到java目录下,那么在项目的pom.xml文件中需要添加:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
方式3:注意在.yml配置文件中不要弄混淆Mybatis和Mybatis-plus的配置
比如项目pom.xml中引用的是Mybatis-plus的starter,其中已经包含了Mybatis了,配置文件中最好统一写成Mybatis-plus的配置:
mybatis:
mapper-locations: classpath:com/*/mapper/xml/*.xml
改成
mybatis-plus:
mapper-locations: classpath:com/*/mapper/xml/*.xml
方式4:如果是多子模块的项目,Mapper.xml文件是在子模块项目中,那么记得在classpath后面加*,代表扫描子项目的Mapper.xml文件
mybatis-plus:
mapper-locations: classpath*:com/*/mapper/xml/*.xml
方式5:我最近放的一个小错误,就是我的Mapper.xml文件是放在不同层次不同包下的,我配置了很多个扫描位置:
mybatis-plus:
mapper-locations: classpath*:com/*/mapper/xml/*.xml,com/test/*/mapper/xml/*.xml,/xml/*.xml
配置好发现依然报未扫描到Mapper.xml文件,后来发现,我的Mapper.xml文件是放到子模块中的"com/test/*/mapper/xml"目录下,配置应该要继续带上classpath*:
上面的配置改成:
mybatis-plus:
mapper-locations: classpath*:com/*/mapper/xml/*.xml,classpath*:com/test/*/mapper/xml/*.xml,/xml/*.xml
因为路径前面不带这个"classpath*"它默认是使用的"classpath",导致扫描不到子模块项目的Mapper.xml文件。
来源:https://blog.csdn.net/u011447905/article/details/123847295


猜你喜欢
- 背景相信很多人都使用过 start.spring.io 来初始化自己的 Spring Boot 工程,这个工具为开发者提供了丰富的可选组件,
- springboot整合tkmapper1.导入pom依赖1.1 导入springboot的parent依赖<parent> &
- 在java里, 我们可以使用Executors.newFixedThreadPool 来创建线程池, 然后就可以不停的创建新任务,并用线程池
- 1.概述当Java 8发布时,其中最令人兴奋的特性之一就是 Lambda 表达式。Lambda 表达式是一种轻量级、简洁和高效的函数式编程方
- 代理OkHttp 支持设置代理,使用OkHttpClient.proxy()即可设置。什么是代理?根据代理的对象不同,可分为正向代理和反向代
- RandomAccessFileRandomAccessFile 是随机访问文件(包括读/写)的类。它支持对文件随机访问的读取和写入,即我们
- 在一些特定的 App 里,我们不希望手机横屏的时候,App 发生旋转,比如微信,企业微信都是这样的。代码可以这样设定:import '
- C#提升管理员权限修改本地Windows系统时间在桌面应用程序开发过程中,需要对C盘下进行文件操作或者系统参数进行设置,例如在没有外网的情况
- 企业级项目开发中都会有文件、图片、视频等文件上传并能够访问的场景,对于初学者Demo可能会直接存储在应用服务器上;对于传统项目可能会单独搭建
- 很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地、Intranet 或 I
- 目录1、如果一个方法或变量是"private"访问级别,那么它的访问范围是:2、代码将打印?3、下面关于hibernat
- 一、int还记得 C 语言里的 int 吗,C里面的 int 有着无符号与有符号之分但是Java内就没有,且固定占4个字节大小,也就是32比
- 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Ac
- 请求进入DispatcherServlet的doDispatch后,获取HandlerMethod。然后根据HandlerMethod来确认
- 本文实例为大家分享了Java实现部门员工管理的具体代码,供大家参考,具体内容如下项目作业:部门员工管理题目要求:某公司要开发内部的 &
- Java中 获取指定字符串在另一个字符串中出现的次数,供大家参考,具体内容如下/** * @param args */ public s
- 黑白棋介绍黑白棋,又叫苹果棋,最早流行于西方国家。游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。黑白棋非常易于上手,但精通则
- 在Android中通过ListView显示SD卡中的文件列表一共有两种方法,一是:通过继承ListActivity显示;二是:利用BaseA
- Android Studio是Android的官方IDE。它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备
- 本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下一、前言银行ATM系列简单操作二、使用步骤1.创建用户信息