Mybatisplus新增和更新(增强MybatisPlus拓展新功能 实战MybatisPlus大合集)
mybatis-plus-max简介
MybatisPlusMax是MybatisPlus的增强包 ,秉承只拓展不修改的理念 ,对MybatisPlus做增强 。
正如MybatisPlus是对MyBatis的增强,MybatisPlusMax是对MybatisPlus的增强 ,拓展理念一脉相承 。
显而易见 ,MybatisPlus依然进入软件成熟期 ,对其进行微小的修改会慎之又慎 ,向其提交修改PR周期较长 ,基于此考虑 ,为了更好的使用MybatisPlus ,作者决定拓展第三方功能包。
当MybatisPlusMax代码逐步成熟后 ,作者愿意一次性捐献给MybatisPlus官方团队 ,以方便用户更好的使用MybatisPlus 。
与MybatisPlus的渊源
MyBatis粉早期的作者也是MyBatis粉,如果你是从拼接SQL时代过来的 ,受够了在Java代码中拼接SQL字符串 ,那么MyBatis绝对让你爱不释手 。
随着MyBatis的重度使用,也暴露出一些问题:访问数据库极其啰嗦 ,单表CURD兜兜转转需要写一大堆代码 ,每个项目有很多张表,每个开发会做很多项目 ,此时的MyBatis从开发端来讲需要完善 。
MybatisPlus初版MybatisPlus敏锐的发现MyBatis的痛点 ,着手对MyBatis重复业务代码进行封装 ,于是便形成了早期版本MybatisPlus 。
早期的MyBatisPlus字段名等魔法值充斥着Java代码里 ,并且为了构建查询条件 ,需要编写及其啰嗦的代码 ,很多MyBatis使用者对此嗤之以鼻 。被喷的原因如下:大量的字段名魔法值充斥在Java代码里 ,与早期的拼接SQL字符串有何区别;非常简单的查询条件 ,在XML文件中很容易完成 ,使用MybatisPlus构造查询条件啰啰嗦嗦,不知所云 。
早期的MybatisPlus为了改进MyBatis的使用的想法是好的 ,可是在落地实践过程中带来了更大的问题 ,因此处于不温不火的状态 。
MybatisPlus新生Java 8带来了Lambda表达式,为MybatisPlus重构代码带来了新的基础能力 。MybatisPlus基于Java 8新特性进行代码重构 ,为其带来了新生 ,使用Lambda语法,干掉了Java代码里的字段名等魔法值 ,此时的MybatisPlus真正展示出吸引力 。
作者粉的是Lambda表达式版本的MybatisPlus ,不管是查询条件的构建 ,还是字段的选取 ,均使用Lambda表达式(方法引用)来完成 ,Java代码变得清爽。
方法引用性能使用方法引用来替换字段名 ,是否会产生性能问题呢?会也不会 。会是因为经过一层包装 ,性能确实有损耗 ,不会是因为MybatisPlus在使用反射的地方使用了缓存 ,有效的解决了中间过程耗时操作,因此可以认为Lambda版的MybatisPlus的性能略有下降 。用略微下降一点性能的代价置换开发的灵活性 ,这一点是值得的。
况且现代服务器硬件逐年提高 ,从系统总体而言考虑,利大于弊 。
基于方法引用实现编码 ,在遇到代码重构是有多爽就不用多说了 。小步快跑 、敏捷开发等 ,造成的屎山代码不胜枚举,代码重构的地位变得愈发重要。
作者的努力
作者是MybatisPlus粉 ,因此在系统组件选择态度更为积极 。
零SQL函数式编程时代在Lambda表达式加持下的MybatisPlus ,零SQL函数式编程成为了可能 。零SQL是只尽量少显示的编写SQL语句 ,能不写就不写 ,对于疑难杂症 ,退回使用MyBatis XML更为方便 ,此时也不能一条道走到黑 。
MybatisPlusMaxMybatisPlusMax不是新内容新 ,是从common包中抽离出来的代码 ,方便用户更好的使用和解藕 。
DAO缓存给DAO层透明化的增加缓存 ,能够极大的提高接口的响应效率,透明化意味着不知不觉间具备了缓存的能力 ,业务代码零感知 。这里使用的是Redis分布式缓存 ,Redis是继Mysql之后必备的组件,因此默认缓存使用Redis分布式缓存 。
有关DAO更多内容 ,请查看视频教程增强MybatisPlus!一行代码整合Redis分布式缓存!
多表连接查询在我们使用Lambda风格搞定单表查询之后 ,因业务需要,多表连接查询必不可少!为此作者在此方面也做了不少努力 ,既然选择零SQL编程 ,那么便坚持到底 。
在这里需要说明几点 ,有不少声音认为 ,单表使用MybatisPlus ,多表使用MyBatis ,有这种想法的朋友可以更近一步 ,不然便是自欺欺人 ,挂着MybatisPlus之名干MyBatis之实 。
实际上 ,MyBatis使用join来完成连表查询,本身是有性能缺陷的 ,数据库数据量膨胀越来越快 ,join连表查询的弊端愈发明显 。《阿里巴巴开发者手册》明令禁止使用join查询,你还在坚持什么呢?
以Lambda版MybatisPlus单表查询为基础 ,通过Java内存拼装 ,完成多表连接查询是全新的选择。视频教程如下:
MybatisPlus多表连接查询 MybatisPlus多表连接查询合集说明 MybatisPlus多表连接查询一对一单条记录查询 MybatisPlus多表连接查询一对一查询列表数据 MybatisPlus多表连接查询一对一分页查询数据 MybatisPlus多表连接查询一对多查询列表数据 MybatisPlus多表连接查询一对多分页查询数据 MybatisPlus多表连接查询结语总结 用代码生成器自动化实现MybatisPlus多表连接查询 MybatisPlus多表连接查询过滤敏感字段属性 MyBatis多表连接查询开启二级缓存脏数据案例分析 MybatisPlus多表连接查询之二级缓存 Java代码生成器只要你想偷懒,那么Java代码生成器便是偷懒的利器 ,Java代码生成器以MybatisPlus为基础 ,通过在全局yml文件中复用数据库 ,读取数据库元数据信息 ,一件生成domain 、mapper、service 、controller等Spring MVC风格代码 ,以单表查询为主 ,兼顾多表连接查询 ,是你的开发好帮手 。
文字教程MybatisPlus代码生成器
视频教程 Java代码生成器 本地代码生成器 Java代码生成器 基于SpringBoot MybatisPlus风格 重制版 Java代码生成器2.0(重制版)后记
作者叫赛泰先生 ,主要技术分享平台在B站 ,是一位MybatisPlus粉,基于MybatisPlus做实战技术分享 ,希望能对喜欢MybatisPlus的你有所帮助 。
另外有MybatisPlus技术学习群 ,添加UP微信dream4s付费进群(个位数),请注明来意。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!