关于Mybatis的升级过程

关于Mybatis的升级过程

继原生的Mybatis,阿里先后推出了两个升级版本的ORM框架,分别是:Mybatis Plus、FluentMybatis.

需求场景设置

我们通过一个比较典型的业务需求来具体实现和对比下,假如有学生成绩表结构如下:
在这里插入图片描述
现在有需求:

统计2000年三门学科(‘英语’, ‘数学’, ‘语文’)及格分数按学期,学科统计最低分,最高分和平均分, 且样本数需要大于1条,统计结果按学期和学科排序

我们可以写SQL语句如下:
在这里插入图片描述
那上面的需求,分别用fluent mybatis, 原生mybatis 和 Mybatis plus来实现一番。

三者实现对比

使用fluent mybatis 来实现上面的功能
在这里插入图片描述
具体代码:https://gitee.com/fluent-mybatis/fluent-mybatis-docs/tree/master/spring-boot-demo/
我们可以看到fluent api的能力,以及IDE对代码的渲染效果。

换成mybatis原生实现效果
1.定义Mapper接口
在这里插入图片描述
2.定义接口需要用到的参数实体 SummaryQuery
在这里插入图片描述
3.定义实现业务逻辑的mapper xml文件
在这里插入图片描述
4.实现业务接口(这里是测试类, 实际应用中应该对应Dao类)
在这里插入图片描述
总之,直接使用mybatis,实现步骤还是相当的繁琐,效率太低。那换成mybatis plus的效果怎样呢?

换成mybatis plus实现效果
mybatis plus的实现比mybatis会简单比较多,实现效果如下:
在这里插入图片描述
如红框圈出的,写mybatis plus实现用到了比较多字符串的硬编码(可以用Entity的get lambda方法部分代替字符串编码)。
字符串的硬编码,会给开发同学造成不小的使用门槛,个人觉的主要有2点:

  • 字段名称的记忆和敲码困难
  • Entity属性跟随数据库字段发生变更后的运行时错误
    其他框架,比如TkMybatis在封装和易用性上比mybatis plus要弱,就不再比较了。

生成代码编码比较
fluent mybatis生成代码设置
在这里插入图片描述
mybatis plus代码生成设置

在这里插入图片描述
FluentMybatis特性一览

在这里插入图片描述
三者对比总结
看完3个框架对同一个功能点的实现, 各位肯定会有自己的判断,这里也总结了一份比较。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clarence.wei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值