Springboot 多模块(A依赖B)集成mybatis , mybatis.mapper-locations 配置多个mapper路径配置

一、问题概述

最近在用SpringBoot 多模块 集成mybatis,模块A 依赖于模块B, 模块A 和模块B 各自有各自的业务逻辑和mapper 文件,模块A 的mapper xml 文件存放在resource 下的 mybatisMapper 文件夹,模块B 的mapper xm 文件存放在 B 模块的resource 下的 mapper 文件夹, 打包时以A 模块为主,B 以jar 包方式被A 依赖。当SpringBoot 应用启动时,一直 报错

.BindingException: Invalid bound statement (not found): 

二、问题分析

mybatis 是一个重要的持久化框架,只要通过sql 就可以实现数据的增删改查,原理本质上是通过mapper 接口层和 xml 文件做对应,xml 里的namespace 对应包名,方法对应mapper 接口里的方法名。
特别注意两点:
1. mapper 接口的文件名默认要和xml 的文件名保持一致
2. mapper xml 文件所在包路径要和mapper 接口文件在同一包下,如果不在同一包下,则需要从yml 里面进行配置mapper-locations

例如:

 mybatis:
    mapper-locations: classpath:mybatisMapper/*Mapper.xml

但要注意一点: 如果A 模块依赖B 模块,A 为启动类,B模块里面有自己的xml ,则要想实现A 能访问到B 模块下xml 则需要在A 模块下做如下配置:

mybatis:
   mapper-locations: classpath:mybatisMapper/*Mapper.xml, classpath*:apper/*Mapper.xml

classpath 和 classpath 区别: classpath:只会到你的class路径中查找找文件; classpath:不仅包含class路径,还包括jar文件中(class路径)进行查找.**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值