一、什么是 MyBatis
MyBatis 是一个优秀的 ORM(Object Relational Mapping 对象关系映射) 框架,介绍完毕。
其实介绍 MyBatis 不需要说太多,有这一句就足够了,好的产品无需过多的描述,简单一句话可以概况他的强大,当然,我们是第一次接触这个 MyBatis,当然不能就这一句话就给他说完了
剩下的我们通过百科还有它的官网去了解他。
先来上百科
可以看到,MyBatis 是 Apache 的一个开源项目,2010 年前移到了谷歌,当然,这个都是历史,大家知道一下,然后就没有了,我们接着往下翻翻
我们主要是看下面这些,MyBatis 是支持普通的 SQL 查询,也就是说,我们可以自己写 SQL
但是这里有人会问了,我们之前使用 JDBC 的时候,不也是自己写 SQL 吗?到头来还是写 SQL,费劲死了
其实不然,后面我会解释具体原因 ~~~
接着往下看,MyBatis 使用简单的 XML 和 注解,将接口、和Java的 POJO(POJO 就是对象实体,好比 Student、Teacher 类)映射成数据库中的记录。
可能有人理解不了,我们这个现在解释也解释不清楚,后面我们一边学习,一边理解这句话,就会明白了~
再往下翻翻,我们可以看到一个这个东西
这个动态 SQL 可以说是 MyBatis 最强大的特性之一。当然啊,我们也是后面慢慢去讲述这个东西,先知道一下这个名词。然后带着问题去学习,这样会更好。
百科看完,我们再去它的官网看看。
官网地址:https://mybatis.org/mybatis-3/
进去后可以看到一个这个东西
嗯,非常好,我们直接选择这个简体中文!
选择之后,我们看一下 MyBatis 的 logo
一个红色的小鸟,很可爱啊,当然,这都是次要的,我们主要来看他首页的介绍
可以看到,官网的介绍更吊,就这几句话,可以说概括了它的所有。
二、对比其他的 ORM
除去这个 MyBatis 之外,还有很多其他的 ORM,这里我们就来说说他们
1. hibernate
logo:
特点:
- 完全面向POJO,不再需要编写SQL就可以通过映射关系来操作数据库,是一种全表映射的体现
- 所以对于性能要求不太苛刻的系统,比如管理系统、ERP 等推荐使用Hibernate
优点:
- 同时提供了日志、缓存、级联(级联比MyBatis强大)等特性,此外还提供HQL (Hibernate Query Language)对POIO进行操作,使用十分方便。
- 对对象的维护和缓存要比MyBatis好
- 数据库移植性很好
- Hibernate有更好的二级缓存机制,可以使用第三方缓存
- 可以自动生成SQL语句,自动执行
- Hibernate是一个没有侵入性的框架
缺点:
- 由于无须SQL,当多表关联超过3个的时候,通过Hibernate的级联会造成太多性能的丢失
体验:
我之前使用过很长一段时间的 hibernate,相比 MyBatis,这个 hibernate 可以说是相对方便很多,尤其是对于我们当时上学时,写的一些 Demo,因为没有复杂的查询,所以使用这个非常好,但是从接触工作之后,我再也没有用过它。
原因很简单,工作中复杂查询经常出现,有的时候光 SQL 就得写100多行,关联的表、条件更是非常多,所以说用 hibernate 就不是特别好。
2. Spring JDBC
这个框架是 Spring 开发的一套框架,可以说是将 JDBC 进行封装,使用也和 JDBC 及其类似。
之前学习的时候因为也遇到过这个框架,所以也看了看。
体验:我个人感觉这个框架也不错,虽然说现在不是主流框架,但是在 Spring 一统江山的年代,我相信它也会有一天挤入到主流的行列。
3. Spring Data Jpa
这个同样,也是属于 Spring 提供的一套框架,这套框架是整合了 hibernate 框架,所以优缺点和 hibernate 类似,不做过多的评论。
体验:之前读书时候,也用过这个框架,感觉和 hibernate 非常类似。
4. Mybatis-Plus
这套框架是在 MyBatis 框架之上封装的一套框架,可以说是优化了 MyBatis 之前的不足,并且让 MyBatis 更强大了,我们后期也会学习这个的。
大家可以先去看看介绍:https://mp.baomidou.com/guide/
体验:非常强大,而且极其灵活,在 MyBatis 之上。
嗯,这一节就写这么点好了,下一篇我们来正式开始学习 MyBatis。
欢迎大家访问我的网站:https://www.lemon1234.com
可以的话关注一下我的公众号,就在我网站,每天都有更新~~~,无限资源畅游 Java,感谢~
最近小程序也开放了,大家可以扫码进行玩玩看