今天在学习mybatis-plus过程中,按照官方文档在用SpringBoot + mybatis-plus构建了项目后,并使用AutoGenerator生成代码后,怎么运行都无法通过。
一直报“Unsatisfied dependency expressed through field 'baseMapper'”,
反复查看代码,并通过与官方文档进行比较,还是没有看出问题,于是在网上进行查找。
最终找到了两个看起来比较靠谱的答案:
1、把其他有mybatis关键字的都删掉,只留下以下一份mybatis starter
<!--mybatis-plus支持 -》 Mybatis-Plus学习官方文档:https://baomidou.oschina.io/mybatis-plus-doc/#/quick-start-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
但发现运行后仍然报这个错。
2、在仔细看了错误以后,怀疑是不是baseMapper确实没有没映射到
于是查看了生成的mapper,确实没有映射,于是按照网上的第二种方法,给mapper加上@Mapper注解
以为一切搞定了,但是运行以后还是报这个错误。
在使用第二种方法以后,发现应该就是没有映射到mapper导致的,那么就还有一种可能,就是Application启动类上的@MapperScan("com.xxx.mapper")这个注解路径写错了,仔细看了以后,发现确实是这个写的不对,改好以后,启动正常,搞定。
总结:
那这里就有两个问题,一个是mybatis-plus包是否正确的问题,第二个是生成的Mapper代码没有进行@Mapper映射。当然这里也可以在Application中进行@MapperScan。
于此我又产生了一个问题,就是@Mapper和@MapperScan到底是什么区别,下次在写了。