发布网友 发布时间:2022-09-17 03:19
共1个回答
热心网友 时间:2023-10-14 21:43
兄弟们!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包,它的提示就是会生效的配置!