mybatis|为什么mybatisplus这么好用,反而用的不多?

mybatis|为什么mybatisplus这么好用,反而用的不多?

文章图片

mybatis|为什么mybatisplus这么好用,反而用的不多?

对会用的人来说 , mybatis-plus的wrapper非常好用 , 不再需要去关注dao层了 , 但是这需要一定的学习成本 , 而且不太符合经典的三层架构思维 , 对一些老前辈来说完全是违反常识的 , 很别扭 。 对他们来说 , dao层还是拿在自己手里更踏实 , 给第三方封装起来有点不踏实 ,
另一方面 , 现在代码生成器的框架很多 , 用起来很方便 , 老前辈们宁愿用“mybatis+代码生成器”的组合 , 不愿意颠覆自己的思维习惯;当然这样的代价就是自己维护xml文件 , 很麻烦 。

最近的使用后有一个新的想法 , mp不能很方便地多表联查 , 然后映射成一个vo对象 , 这样的话service层的业务逻辑会变复杂 , 多次查询导致性能也会有所下降
虽然mybatis-plus是在mybatis上做了很多增强功能 , 都是继承mybatis的类 , 然后修改了相应的某些逻辑 。 这样固然是轻松巧妙的解决问题的办法 , 但是也会导致自己的设计不够完美 。
一、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|为什么mybatisplus这么好用,反而用的不多?】毕竟 , 是基于MyBatis的 , 而用MyBatis的 , 都是喜欢写SQL , 喜欢写xml的 , 而MyBatis Plus是写Java的 。 ORM是自动挡 , MyBatis是手动挡 , MyBatis Plus是在副驾驶装一个离合器 。