1 MyBatis 工作流程
从前面的文章(Mybatis 文档篇 1:开始使用)我们可以知道,MyBatis 作为 ORM 框架,其核心作用是包装了传统繁杂的 JDBC 代码,支持映射,使开发者可以省去大量的 sql 拼写、参数传递和处理返回结果的工作。我们再次梳理一下 MyBatis 的工作流程。
MyBatis 的核心功能入口为 SqlSession,它包含了面向数据库执行 SQL 命令所需的所有方法。要想获取 SQLSession 就需要构建 SqlSessionFactory,SqlSessionFactory 由 SqlSessionFactoryBuilder 构建,而 SqlSessionFactoryBuilder 的创建需要读入 Configuration 的所有配置。获取到 SqlSession 之后,我们可以通过 SqlSession 获取 Mapper,接着可以调用想要执行的 SQL 语句(对应 Mapper 接口中的方法或 Java 注解)来执行数据库操作而不用关心连接的建立、关闭等底层操作。最后 MyBatis 会自动映射数据库返回的结果集到我们想要的类型。至此,即完成一次完整的操作。
具体工作流程如下图所示:
mybatis 流程图2 MyBatis 源码构成
在进入源码阅读前,我们先从整体上来认识一下 MyBatis 的源码组成。每个功能模块对应源码的各个包,从 SqlSession 作为入口,包含上层的执行器、参数和结果集映射、插件、SQL 解析等以及底层的数据源模块、事务管理模块、缓存、日志、类型转换等功能模块。
源码构成图 源码包结构附:
当前版本:mybatis-3.5.0
官网文档:MyBatis
项目实践:MyBatis Learn
手写源码:MyBatis 简易实现
网友评论