Spring Boot集成MyBatis MyBatis绑定异常org.apache.ibatis.binding.BindingException

因为受SSM框架的影响,我比较喜欢讲MyBatis的mapper映射文件和dao接口文件放在一个目录下。(如下面目录结构的截图显示的那样)但是这样写了之后,而且在application.properties 配置文件中也配置了mapper的路径。每次启动项目也没有问题,但是当我浏览器请求的时候就会报错:org.apache.ibatis.binding.BindingException

首先看下我的配置

目录结构:

application.properties 配置文件:

# mybatis接口文件位置
mybatis.mapper-locations=classpath*:com/***/***/dao/*.xml
mybatis.type-aliases-package=com.***.***.pojo

感觉也没有错误啊?怎么会找不到这个xml文件呢。

后来经过反复摸索,知道了原因在哪,先看什么原因,然后说明解决方式。

 

原因是因为,把mapper文件放在类似于src/java/dao文件夹下,而这个文件夹类型是jar,所以maven打war包的时候,只会打包java文件,而把mapper映射文件或者properties文件给过滤掉,导致路径下只有class文件,没有mapper的xml文件。所以配置文件中配置的路径找不到这个文件(可以去看看源码,mybatis在绑定的时候,会去你在application.properties 配置文件中配置的路径下找xml文件)。

可以参考这个博客:https://blog.csdn.net/tigerpan1119/article/details/80828370

 

 

 

解决方式1:

在pom.xml文件中加入这样的配置(让maven在打包的时候去这个路径下把这些资源文件一起打包了)

 

解决方式2:

将mapper的映射文件放在resources文件夹下。(如图)   原因是因为,resources下的文件会被当成资源文件,maven在打包的时候会打包这些文件而不需要在pom.xml中指定路径。

b.然后将application.properties 配置文件改为:

# mybatis接口文件位置
mybatis.mapper-locations=classpath:/mapper/*.xml
mybatis.type-aliases-package=com.***.***.pojo


 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值