Mybatis-plus 巨坑点 路径配置问题

发布于 2021-06-04  951 次阅读


最近写商城项目,想设计秒杀系统,之前都是使用的Mybatis-plus 自带的SQL方法,现在需要自己手动写Mapper  出了一个巨坑点 特此记录

 

因为Mybatis-plus自动生成了Mapper接口和Mapper.xml,我相信namespace是没有出错的,如下图

但是 当我执行测试方法的时候,会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.southwind.mmall002.mapper.OrdersMap 错误

即 找不到对应的mapper文件,我开始百度,有的说是namespace没对应,有的说是resultType未对应,有的说是parameterType未对应

于是我开始进行修改,一遍又一遍的核对方法id,namespace,resultType,parameterType

诚然,如果这些和Mapper接口定义的方法有差异的话,也会报如上的错误,但可惜,这次我遇到的错误不是.

当我快要崩溃的时候,我百度到了这个注意第三条,事实证明,的确是第三条,mapper文件的路径和映射接口类的包名是否正确

 

在之前 我的配置文件里,是没有

mapper-locations: 
这句的,但实际上,必须要加上这一句,项目才能找到对应的mapper!!!
完整的路径如下:
mapper-locations: com/southwind/mmall002/mapper/xml/*.xml
因为我的项目结构 mapper下面还有个xml文件夹,所以不可以掉了/xml,否则一样找不到

特此记录巨坑!
另外,还有人说添加这个

<!-- <resources>--><!-- <resources>--><!-- &lt;!&ndash; maven项目中src源代码下的xml等资源文件编译进classes文件夹,--><!--              注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件,--><!--              如果没有就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.pet.mapper.PetMapper.selectByPrimaryKey&ndash;&gt;--><!-- <resource>--><!-- <directory>src/main/java</directory>--><!-- <includes>--><!-- <include>**/*.xml</include>--><!-- </includes>--><!-- </resource>-->
<!-- &lt;!&ndash;将resources目录下的配置文件编译进classes文件  &ndash;&gt;--><!-- <resource>--><!-- <directory>src/main/resources</directory>--><!-- </resource>--><!-- </resources>-->

她喜欢所以就做咯