Java 开发实战!不会吧
MyBatis 作为持久层框架,其主要思想是将程序中的大量 SQL 语句剥离出来,配置在配置文件中,以实现 SQL 的灵活配置。这样做的好处是将 SQL 与程序代码分离,做到可以在不修改程序代码的情况下,直接在配置文件中修改 SQL。
在这里分享一份 [mybatis 从入门到精通] 的强力教程,定能够助你一臂之力。
Mybatis 基本介绍
ORM 和 MyBatis
对象/关系数据库映射(ORM)
基本映射方式
流行的 ORM 框架简介
目前流行的编程语言,例如 Java、 C#等,都是面向对象的编程语言;而目前主流的数据库产品,例如 Oracle、DB2 等,依然是关系数据库。编程语言和底层数据库的发展不协调,催生出了 ORM 框架,ORM 框架可作为面向对象编程语言和数据库之间的桥梁。
确切地说,MyBatis 并不完全是一种 ORM 框架,它的设计思想和 ORM 相似,只是它允许开发,人员直接编写 SQL 语句,使得访问数据库更加灵活,更准确地说,它应该是一种“SQL Mapping”框架。
![](https://static001.geekbang.org/infoq/b2/b2e731e1d090610a59d069fcbcef77cb.png)
Mybatis 的体系结构
SqlSessionFactory
SqlSession
MyBatis 的配置文件结构
settings 设置
typeAliases 类型命名
typeHandlers 类型处理器
objectFactory 对象工厂
environments 配置环境
mapper 映射器
通过前面的介绍可以知道,MyBatis 的持久化解决方案将用户从原始的 JDBC 访问中解放出来,用户只需要定义需要操作的 SQL 语句,无须关注底层的 JDBC 操作,就可以面向对象的方式进行持久层操作。底层数据库连接的获取、数据访问的实现、事务控制等都无须用户关心,从而将应用层从底层的 JDBC/JTAAPI 抽取出来。通过配置文件管理 JDBC 连接,让 MyBatis 解决持久化访问的实现。
MyBatis 中的常用对象有 SqSessionFactory 和 SlSession。
![](https://static001.geekbang.org/infoq/7e/7e7de5358421157bef1dfcfc86ef3d5b.png)
Mybatis 的关联映射和动态 SQL
一对一
一对多
多对多
动态 SQL
关联关系是面向对象分析、面向对象设计最重要的知识,MyBatis 完全可以理解这种关联关系,如果映射得当,MyBatis 的关联映射将可以大大简化持久层数据的访问。关联关系大致有如下分类。
![](https://static001.geekbang.org/infoq/64/6494d5972b817b40ec2d280dab9162f2.png)
Mybatis 的事务管理以及缓存机制
事务的概念
Transaction 接口
事务的配置创建和使用
一级缓存( SqlSession 级别)
二级缓存(mapper 级别)
每个业务逻辑都是由一系列数据库 访问完成的,这-系列数据库访间可能会修改多条数据记录,这一系列修改应该是一个整体,绝不能仅修改其中的几条数据记录。也就是说,多个数据库原子访问应该被绑定成一个整体,这就是事务。事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。
![](https://static001.geekbang.org/infoq/50/501e4928e602f93cba224d3821cce50d.png)
Mybatis 注解配置
MyBatis 常用注解
MyBatis 注解的插入、修改、删除和查询操作
MyBatis 注解的一对一、一对多和多对多操作
MyBatis 注解的动态 SQL
前面介绍了 MyBatis 的基本用法、关联映射、动态 SQL 和缓存机制等知识,其所有的配置都是使用 XML 完成,但是大量的 XML 配置文件的编写是非常繁琐的,因此 MyBatis 也提供了更加简便的基于注解(annotation) 的配置方式。
最后
以上分享的全部分布式技术专题+面试解析+相关的手写和学习的笔记 pdf,高清完整版戳这里免费领取
还有更多 Java 笔记分享如下:
![](https://static001.geekbang.org/infoq/07/074a4b435d1616975a2d8b9c5073b06a.png)
评论