当前位置: 首页 > news >正文

SpringBoot--Mapper XML 和 Mapper 接口在不同包

🧩 背景说明

在 Spring Boot 中,MyBatis 默认要求 Mapper 接口和 XML 文件位于相同包路径
但在实际项目中,为了模块化或结构清晰,常将 XML 放在 resources/mybatis/... 下,这种做法就必须进行额外配置。


📁 示例目录结构

src/main/java
└── com/example/mapper└── UserMapper.javasrc/main/resources
└── mybatis/mappers└── UserMapper.xml  ← ❗ 不在同包下

✅ 解决方案

方式一:application.yml 配置

mybatis:mapper-locations: classpath:mybatis/mappers/*.xmltype-aliases-package: com.example.pojo  # 实体类包路径(可选)

方式二:application.properties 配置

mybatis.mapper-locations=classpath:mybatis/mappers/*.xml
mybatis.type-aliases-package=com.example.pojo

💡 通配符说明

配置路径含义说明
classpath:mybatis/mappers/*.xml匹配 mappers/ 下所有 XML 文件
classpath:mybatis/**/*.xml匹配多级子目录中的所有 XML 文件

⚠️ classpath: 起始路径是 resources/


🧠 注意事项

  • mapper-locations 是必须配置的(当 XML 和接口不在一起时)。

  • type-aliases-package 建议配置,可省略 XML 中类的全限定名。

  • 如果你使用的是多模块项目,建议使用 classpath*: 前缀来全局扫描。


🔍 @MapperScan 配置

在启动类中加上:

@MapperScan("com.example.mapper")  // Mapper 接口所在包
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

⚠️ 常见报错与原因

报错信息原因说明
Invalid bound statement (not found)XML 文件未被扫描
BindingException: Invalid bound statement同上
类路径很长不易读没配 type-aliases-package

✅ 总结一句话

当 Mapper 接口和 XML 文件不在同一包时,必须在配置文件中手动指定 XML 路径 mapper-locations,否则无法绑定 SQL 语句。

http://www.lryc.cn/news/595941.html

相关文章:

  • C++中的list(2)简单复现list中的关键逻辑
  • 文本分类与情感分析Python实战
  • liunx运维进阶脚本
  • 2025.7.25论文阅读
  • VUE2 项目学习笔记 ? 语法 v-if/v-show
  • 为何在 Vue 的 v-model 指令中不能使用可选链(Optional Chaining)?
  • 【Spring Boot】Spring Boot循环依赖破解:@Lazy与Setter注入的取舍指南(流程图修复版)
  • JavaWeb学习打卡10(HttpServletRequest详解应用、获取参数,请求转发实例)
  • 分布在内侧内嗅皮层(MEC)的边界细胞对NLP中的深层语义分析的积极影响和启示
  • 短剧小程序系统开发:重塑影视内容传播格局
  • Python爬虫实战:批量下载亚马逊商品图片
  • java多线程编程自用笔记
  • 日常随笔-React摘要
  • 浅谈——游戏中的各种配置格式
  • C++ 模板库map数据结构的概念和使用案例
  • React集成百度【BMap Draw】教程(001):实现距离测量和面积测量
  • Go后端配置文件教程
  • Python 链接各种中间件[Mysql\redis\mssql\tdengine]
  • 发票识别技术原理
  • Redis持久化-AOF
  • Ubuntu 桌面版和服务器版在资源消耗上的对比分析
  • 第十六天(结构体初学)
  • Sa-Token大师:第四章 - 企业级架构与源码实战
  • Events
  • Linux部署.net Core 环境
  • 虚幻 5 与 3D 软件的协作:实时渲染,所见所得
  • linux-日志服务
  • 同步本地文件到服务器上的Docker容器
  • 跨维智能:全新一代人形机器人 DexForce W1 Pro
  • 大模型后训练——DPO实践