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

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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

最后

给大家送一个小福利

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

[外链图片转存中…(img-Fpirz9WT-1713802191715)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值