指点成金-最美分享吧

登录

mybatis plus该不该用

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了mybatis plus该不该用相关的知识,希望对你有一定的参考价值。

个人建议:mybatis plus针对mybatis,做了很多改进,简单说的说就是:hibernate的优点+mybatis的优点=mybatis plus,增强mybatis的更改数据库时SQL的兼容性(hibernate优点mybatis缺点),以及封装一些简单SQL(hibernate优点mybatis缺点),提升mybatis的开发效率,且性能没有降低。mybatis plus兼容mybatis的相关配置和使用方式,除了generator不同。
新项目可以根据项目情况使用,旧项目那就不用折腾了。运行的项目通常情况下稳定第一。
新项目如果由你全权负责后端,你想用哪个就用哪个,如果团队,就得讨论一下。
作为个人开发者,那不是屁话,两个必须要会。项目上可以优先plus。
参考技术A Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,建议参考mybatis-plus官网。

温馨提示:以上解释仅供参考。
应答时间:2021-01-14,最新业务变化请以平安银行官网公布为准。
[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~
https://b.pingan.com.cn/paim/iknow/index.html详情
    官方服务
      官方网站智能问答
参考技术B turn and creaks

改mybatis到mybatis-plus的擎天巨坑

参考技术A

兄弟们!mybatis-plus是号称对mybatis本身无侵入的一种加强版。
但是当你引入它的时候,可能会广泛踩坑。接下来给大家看看我的踩坑历史。

第一坑:当你选择的是 mybatis-spring-boot-starter + mybatis-plus 引入时
pom依赖如下:

这样。其实,你的mybatis还是你曾经的mybatis,只是附加了一些功能。但是,当你开始配置yml文件的时候,诸多小白(如我),可能会直接将一些属性配置直接替换到mybatis-plus之下。
如:

血泪的教训!!!
其实,yml已经很好心地提醒了你,比如打 mybatis-plus 之后没有属性提示信息,属性高亮黄色等等,但是你的配置很可能就是直接CL复制过来的,所以完全不会注意到。

那么此时请记住,现在你的 mybatis-plus 是没有 mybatis 基础文件的大哥们!!!你们是两个包!!!你不是直接引入的 mybatis-plus-boot-starter 的!!!
因此,该配置在mybatis下的,一个都不能少。比如,驼峰映射。
如果你像我这么配置,明明打开了驼峰映射 map-underscore-to-camel-case: true 但是鉴于它不是有效的配置,所以它是不会生效的。
当你纠结为啥你获取到的参数都是null的时候,花费了N个小时之后,终于觉得可能是驼峰映射的问题的时候,一个断点打进来。
哟嚯,发现了!这个配置是关闭的哦!

所以需要在 mybatis 下保留其基础配置。
如下:

但这样就没法直接在yml中操作 mybatis-plus 了。

第二坑:当你觉得附和两个包太过麻烦,而且无法配置mybatis-plus的属性打算直接引入 mybatis-plus-boot-starter 时
请记住一定要排除掉 mybatis-spring-boot-starter 这个包,不然很可能会有jar包版本冲突。
mybatis造成的启动时版本冲突bug示例
因此,我们直接这样导入包即可

然后配置文件就可以全部转到 mybatis-plus 下
如下:

其实yml真的已经尽力了!如果你真的已经引入了starter包,它的提示就是会生效的配置!

以上是关于mybatis plus该不该用的主要内容,如果未能解决你的问题,请参考以下文章