MyBatis3 源码解析 - MyBatis3 整体架构

什么是 MyBatis ?

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

orm框架的基本思想

无论是用过的hibernate,mybatis,你会发现他们有一个共同点:

  • 从配置文件(通常是XML配置文件中)得到 sessionfactory.
  • 由sessionfactory 产生 session
  • 在session 中完成对数据的增删改查和事务提交等.
  • 在用完之后关闭session 。
  • 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

MyBatis 架构图

下图是MyBatis的一张架构图,来自Java框架篇—Mybatis 入门

mybatis.png



Mybatis的功能架构分为三层:

  • API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
  • 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
  • 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

源码包结构

从Github 上clone mybatis-3 源码到本地,用Intellij IDEA15 打开后,整个项目的包结构如下:

mybatis_package.png


其中,几个核心类有这些:

  • org.apache.ibatis.session.Configuration
  • org.apache.ibatis.session.SqlSessionFactoryBuilder
  • org.apache.ibatis.session.SqlSessionFactory
  • org.apache.ibatis.session.SqlSession
  • org.apache.ibatis.executor.Executor
  • org.apache.ibatis.executor.statement.StatementHandler
  • org.apache.ibatis.executor.parameter.ParameterHandler
  • org.apache.ibatis.executor.resultset.ResultSetHandler
  • org.apache.ibatis.type.TypeHandler
  • org.apache.ibatis.mapping.BoundSql
  • org.apache.ibatis.mapping.MappedStatement
  • org.apache.ibatis.mapping.SqlSource
  • org.apache.ibatis.plugin.Interceptor
  • org.apache.ibatis.plugin.Plugin

等等,后面系列文章中我们将逐一予以介绍。

参考资料

MyBatis 官方文档:http://www.mybatis.org/mybatis-3/zh/index.html


Java框架篇---Mybatis

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 11,164评论 0 4
  • 1 引言# 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybait...
    七寸知架构阅读 76,813评论 36 979
  • 1 缓存介绍# MyBatis支持声明式数据缓存(declarative data caching)。当一条SQL...
    七寸知架构阅读 6,440评论 2 51
  • “北京过去有许多老规矩,如出门回家都要跟长辈打招呼、吃菜不许满盘子乱挑、不许管闲事、笑不露齿话不高声、站有站相坐有...
    上善若水南京人阅读 3,677评论 2 4
  • 武汉大学人民医院,眼科。 看病的对象是妹妹,我是陪同。因为前一天她说眼睛不舒服,刚好我上班...
    琴二的哆啦阅读 2,481评论 0 0