35天熬夜看完这份史诗级“MyBatis源码笔记”面试官都直呼:NB(1)

本文介绍了MyBatis作为优秀持久层框架的特点,包括定制化SQL、结果集映射、缓存机制和插件扩展。作者强调了MyBatis的易用性、结果集映射的强大和源码学习的价值,以及如何获取完整的MyBatis源码学习资源。
摘要由CSDN通过智能技术生成

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

为什么要选择mybatis呢?原因如下:

====================

1.简单,这个无需我多废话。肯定的啊,使用过的童鞋都知道,在dao层定义一个接口,然后定义一个对应的xml(xml中namespace的值对应接口的全限定名就ok。因为mybatis是通过namespaceid去和接口类进行映射,然后使用动态代理创建接口类的实例方法,参见动态代理).

2.结果集映射,我认为这是mybatis做的最牛的一点,也是选择他最大的一个理由

3.完善的缓存机制(mybatis有1级缓存和2级缓存),1级缓存是基于会话的(Session),2级缓存是基于应用级别。这里不做过多阐述,有兴趣的可以参考文章 http://www.iteye.com/topic/1112327/

4.强大的插件机制。它可以在运行过程中动态的执行你自己的业务逻辑,比如防止sql注入,分页,sql日志打印,sql执行耗时等都可以在插件中做。真正实现了业务与功能分离。让你随行所欲的在飞dao层中增加任何你想做的事情。

阅读源码后的感受

========

通过阅读源码,我发现许多优秀的开源项目历经数千名开发者的数万次提交,被数亿用户使用。这些项目从可扩展性、可靠性和可用性等各个角度考量,都是十分优良的。通过阅读这些项目的源码,我能找到自己在软件设计和开发上的不足。

在本篇当中我努力做到详尽而不哕唆。本篇以包为单位,对MyBatis源码中的 300多个类进行了介绍。在此过程中,对于简单或重复的类一笔带过, 但对于复杂的类,则是逐方法、逐行地进行分析,力求让大家读得顺、读得懂、有收获。

福 利

===

阿里首发272页MyBatis源码手册

这份MyBatis源码总共分为9个章节,共计272页源码笔记,由于内容过多,小编没办法为大家进行详尽的展示,只能为大家展示部分内容

一MyBatis简介

==========

本章主要介绍了Java ORM的来源和历史,同时分别介绍了JDBC、Hibernate和MyBatis三种访问数据库的方法,在分析它们优缺点的基础上,比较它们之间的区别和适用的场景。

资料获取方式:点击传送门获取资料


二MyBaits入D

==========

这章的目标很明确,就是带大家入门。我们先准备环境的搭建,然后开始讲述MyBatis的基本构成和应用,并且给出一个可以运行的实例。为了让大家加深理解,我们将讲述MyBatis的核心类和接口对象的生命周期,在理解其生命周期后,我们将优化实例。这章内容应用多于原理,我们在后面的几章中再讨论其实现的原理、架构和方法。

三配置

===

第2章我们只是粗浅地讨论了MyBatis的组成和它们大致的用法,这章的任务是详细讨论MyBatis的配置。MyBatis的配置文件对整个MyBatis体系产生深远的影响,所以我们需要认真学习它。先来看一下MyBatis配置XML文件的层次结构。注意,这些层次是不能够颠倒顺序的,如果颠倒顺序,MyBatis 在解析XML文件的时候就会出现异常。先来了解一下MyBatis配置XML文件的层次结构。

四映射器

====

映射器是MyBatis 最强大的工具,也是我们使用MyBatis时用得最多的工具,因此熟练掌握它十分必要。MyBatis 是针对映射器构造的SQL构建的轻量级框架,并且通过配置生成对应的JavaBean返回给调用者,而这些配置主要便是映射器,在MyBatis中你可以根据情况定义动态SQL来满足不同场景的需要,它比其他框架灵活得多。MyBatis 还支持自动绑定JavaBean, 我们只要让SQL返回的字段名和JavaBean的属性名保持-致(或者采用驼峰式命名),便可以省掉这些繁琐的映射配置。

五动态SQL

======

如果使用JDBC或者其他框架,很多时候你得根据需要去拼装SQL,这是一个麻烦的事情。而MyBatis提供对SQL语句动态的组装能力,而且它只有几个基本的元素,十分简单明了,大量的判断都可以在MyBatis的映射XML文件里面配置,以达到许多我们需要大量代码才能实现的功能,大大减少了我们编写代码的工作量,这体现了MyBatis的灵活性、高度可配置性和可维护性。MyBatis 也可以在注解中配置SQL,但是由于注解中配置功能受限,对于复杂的SQL而言可读性很差,所以使用较少,因此在本书将不对它们进行介绍。

资料获取方式:私信回复【电子书】获取资料

六MyBatis的解析和运行原理

================

如果你只限于MyBatis 的普通使用,不打算使用插件,那么请你跳过本章。因为在前5章我们对MyBatis的应用已经有了较为详细的阐述,翻阅前面的内容,熟悉它们,你就可以成为一名能够正确使用MyBatis 的开发者。本章是有-定难度的,因为它讲述的是MyBatis底层的设计和实现原理,原理就意味着晦涩难懂,对Java初学者来说,这甚至难以理解,本章更加适合对Java 有一-定经验 且参与过设计的开发者阅读,不过初学者通过仔细阅读和反复推敲还是能够掌握的。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值