使用Mybatis-plus的死妈坑

为了填这死妈坑,晚上两点没睡,虽然是自身菜的原因,但我还是得骂街。

坑原型

在从Mybatis上增强到Mybatis-plus想使项目少写两条基础语句简洁点时,发现原始问题。他说找不到我的usermapper。百度找了一通,都说你的scan没扫好啊,什么什么乱七八糟的。虽然他们说的是其中一种情况,但刚好,我不是。。我都扫描到了。

jar包冲突

既然增加了scan无法解决问题,又开始搜索搜索,掉进了其中一个坑,我本来没有同时使用Mybatis和Mybatis的依赖,但就在昨天我脑子抽风,将两个maven都加上了。导致加载sqlSessionFactory时无法创建。

死妈!

依赖版本

版本不同,类位置不同导致老是报红,让我来来回回的切换版本。。

死妈!

最终原因

由于这个报错具有迷惑性,让我以为我的Mapper没有被扫描掉,一直无限排查,修改xml,建立mybatisconfig,还是于事无补。最后偶然的一次机会中,我扫除掉了之前重叠的Mybatis-plus这个依赖并且启动了。奇迹发生了。

后知后觉的debug,发现mapper原来并不为空。再搜索关于mybatisPlus的坑的博客。最终锁定以下原因:

mybatis-plus异于mybatis-plus-boot-starter

原来mybatis-plus并没有自动生成任何语句。即其中的selectList方法要自己来实现。他报错并不是mapper空间没有被找到,而是selectList没有被找到。

实践发现,这样子查询就成功了。

使用Mybatis-plus的死妈坑_第1张图片

后来把包直接换成mybatis-plus-boot-starter就不需要这条xml了,但在切换版本的时候也出现了一些差错,3.2.0版本会导致原代码import报红,最终切换到3.0.5解决所有问题。

你可能感兴趣的:(使用Mybatis-plus的死妈坑)