一、为什么要用MyBatis
1、一些持久化框架对比
| 方式 | 优点 | 缺点 | 应用场景 |
|---|---|---|---|
| Hibernate | 不再需要编写SQL就可以通过映射关系来操作数据库 | 当多表关联超过3个时Hibermate的级联会损失很多性能;学习成本高 | 适合性能要求不太苛刻的系统,不适合需要大量复杂查询的系统 |
| SpringJDBC | 内嵌Spring框架中、支持AOP;提供了统一的异常处理,框架处理了异常;事务管理 | 只是对原生JDBC进行一层非常薄的封装,没有缓存 | 需要在代码中嵌入SQL语句,适用中小型项目 |
| Mybatis | 满足灵活定制SQL和性能优化的需求 | 编写SQL和映射规则,工作量相对大些 | 性能要求高、响应快、灵活的系统;sql修改、优化比较方便 |
二、MyBatis概念梳理
1、概念
-
MyBatis是支持普通SQL查询、存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的查询。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects)映射成数据库中的记录。
-
与JDBC相比,MyBatis简化了相关代码,SQL语句在一行代码中就能执行,MyBatis提供了一个映射引擎,声明式的将SQL语句的执行结果与对象数据进行映射,通过使用一种内建的类XML表达式语言,SQL语句可以被动态生成。
下图是MyBatis功能流程的整体架构图;主要包含了接口层、核心层、基础层。
-
接口层主要指的是session
-
核心层主要指的是MyBatis的配置、SQL执行、结果映射等
-
基础层主要包含日志、缓存、连接池、事务等。

三、核心层源码分析
1、加载配置文件生成会话工厂

2 、生成会话

3、获取映射
4、执行select

本文介绍了MyBatis框架的优势,如灵活定制SQL及性能优化,并对比了与其他持久化框架的区别。同时,文章还深入剖析了MyBatis的核心组件及其实现原理。

3311

被折叠的 条评论
为什么被折叠?



