《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
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 有一-定经验 且参与过设计的开发者阅读,不过初学者通过仔细阅读和反复推敲还是能够掌握的。
最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
M7-1714462879033)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!