设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者
123426 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 113 讲
设计模式与范式:行为型 (18讲)
设计模式之美
15
15
1.0x
00:00/00:00
登录|注册

87 | 开源实战五(上):MyBatis如何权衡易用性、性能和灵活性?

XML配置文件
映射关系
灵活性
框架的权衡
易用性与性能的对立关系
性能
易用性
重量级
性能
易用性
轻量级
MyBatis实现方式
使用JdbcTemplate的例子
简化数据库开发
框架的实现方式
Hibernate
JdbcTemplate
MyBatis
Hibernate
MyBatis
JdbcTemplate
JDBC
如何平衡易用性、性能和灵活性?
ORM框架
课堂讨论
重点回顾
Mybatis和ORM框架介绍
MyBatis如何权衡易用性、性能和灵活性?

该思维导图由 AI 生成,仅供参考

上几节课我们讲到了 Spring 框架,剖析了背后蕴含的一些通用设计思想,以及用到的十几种设计模式。从今天开始,我们再剖析另外一个 Java 项目开发中经常用到的框架:MyBatis。因为内容比较多,同样,我们也分三节课来讲解。
第一节课,我们分析 MyBatis 如何权衡代码的易用性、性能和灵活性。
第二节课,我们学习如何利用职责链与代理模式实现 MyBatis Plugin。
第三节课,我们总结罗列一下 MyBatis 框架中用到的十几种设计模式。
话不多说,让我们正式开始今天的学习吧!

Mybatis 和 ORM 框架介绍

熟悉 Java 的同学应该知道,MyBatis 是一个 ORM(Object Relational Mapping,对象 - 关系映射)框架。ORM 框架主要是根据类和数据库表之间的映射关系,帮助程序员自动实现对象与数据库中数据之间的互相转化。说得更具体点就是,ORM 负责将程序中的对象存储到数据库中、将数据库中的数据转化为程序中的对象。实际上,Java 中的 ORM 框架有很多,除了刚刚提到的 MyBatis 之外,还有 Hibernate、TopLink 等。
在剖析 Spring 框架的时候,我们讲到,如果用一句话来总结框架作用的话,那就是简化开发。MyBatis 框架也不例外。它简化的是数据库方面的开发。那 MyBatis 是如何简化数据库开发的呢?我们结合第 59 讲中的 JdbcTemplate 的例子来说明一下。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

MyBatis框架在权衡易用性、性能和灵活性方面的设计思想和实现方式。文章介绍了MyBatis作为ORM框架的基本概念和作用,以及与其他框架的对比。通过示例代码展示了MyBatis相对于JdbcTemplate的灵活性和易用性,以及MyBatis的配置文件和映射关系的设计原则。对比了JdbcTemplate、Hibernate和MyBatis在易用性、性能和灵活性方面的特点,指出了框架的易用性和性能之间的对立关系。总结了MyBatis在三个方面的权衡,认为MyBatis在易用性、性能和灵活性之间取得了平衡,支持程序员自己编写SQL,延续了程序员对SQL知识的积累,提供了半透明的框架,得到了程序员的青睐。文章通过对MyBatis框架的介绍和对比分析,深入探讨了框架设计中的权衡取舍,为读者提供了对MyBatis框架的全面了解和技术特点的把握。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《设计模式之美》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(25)

  • 最新
  • 精选
  • 工作中做过一些c++的东西,做起来相当复杂,每引入一个第三方类库,都要自己去github上找,找到再clone下来,打包,才能引入,模板编程面向对象面向过程基于对象函数式,眼花缭乱,指针引用const傻傻分不清楚,cmake打包异常,只有求助大佬才能维持生活 做java就像回家一样,做开发有spring全家桶,打包部署有maven,在csdn比家里感觉好多了,里面各个是人才,说话又好听,只需要CTRL C V就能完成工作,我超喜欢里面的!
    2020-05-22
    2
    69
  • Demon.Lee
    易用性:Hibernate > MyBatis > JdbcTemplate 性能:JdbcTemplate > MyBatis > Hibernate 灵活性:MyBatis > JdbcTemplate > Hibernate
    2020-05-22
    32
  • 寒溪
    netty是个反例,兼顾易用性和性能。
    2020-05-22
    2
    24
  • Monday
    mybatis系列 1、mybatis plus 作用如其名,mybatis增强功能封装好了一些crud的方法 2、mybatis-generator自动生成器,自动生成实体、mapper、Mapper.xml等 3、mybatis分页插件PageHelper,无需关心分页的问题
    2020-05-22
    1
    22
  • L🚲🐱
    Mybatis Plus 可以说是 大大的提高了 Mybatis 的使用效率
    2020-06-01
    1
    14
  • 君哥聊技术
    比如做限流的时候可以直接使用guava中的限流器
    2020-05-22
    7
  • Amon Tin
    jooq,试用了一年多了,非常好用,把SQL语法换成了select().from().where().and()这类的Java语法,同时也支持直接写SQL,orm的定义和映射关系也可以根据表结构自动生成,性能可匹敌mybatis,易用性不比hibernate差,可读性比上面两个都强,实乃新一代orm框架之王
    2021-07-01
    6
  • 子豪sirius
    mybatis可以让开发人员自己写SQL,相比hibernate给了更多控制权。不过在实际开发中有个问题,有些开发人员会写很复杂的SQL,美其名曰是性能更好,但实际性能提升多少,不清楚;反而因为SQL写得巨长巨复杂,带来了阅读困难、调试和查错不便等等问题。明明这部分代码用Java写,业务逻辑是更清晰的~
    2020-05-22
    8
    5
  • test
    SpringCloud全家桶
    2020-05-22
    2
    5
  • 我是曾经那个少年
    1: Spring Boot技术栈,集成外部框架方便。 2:Spring Cloud Alibaba 微服务的技术组件基本够用。 3:hutool工具类方便好用。该有的都有。 4:Mybatis-Plus 避免了最简单的增删改查的实现,以及数据库主键自增,数据字段填充,多数据源的支持。
    2021-12-12
    3
收起评论
显示
设置
留言
25
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部