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开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!