Mybatis整体架构视图:
接
口
层
|
SqlSession
(定义了Mybatis暴露给应用程序调用的API)
|
核
心
处
理
层
|
配置解析
(加载核心配置、映射配置、
mapper接口注解信息,
解析后形成的对象
保存至Configuration对象)
|
参数映射 |
SQL解析
(动态sql拼接)
|
SQL执行
(sql执行涉及多个组件,Executor、
StatementHandler、ParameterHandler、
ResultSetHandler)
|
结果集映射 |
插件
(对sql进行拦截,处理)
|
基
础
支
持
层
|
数据源模块
(自身实现数据源;
提供第三方数据源集成接口)
|
事物管理模块
(自身简单实现事物;
常与spring集成,
事物由spring控制)
|
缓存模块
(两级缓存:自身缓存与应用运行
于同一个jvm,共享一块内存,
缓存数据过大时应用redis等插件)
|
Binding模块
(将用户自定义的Mapper接口
与xml映射文件关联,
通过调用mapper方法执行相应的sql)
|
反射模块
(封装jdk的反射)
|
类型转换
(别名机制;jdbcType
<=>javaType)
|
日志模块
(集成第三
方日志框架)
|
资源加载
(类加载器封装;提供加载类
文件和其他资源文件功能)
|
解析器模块
(对Xpath进行封装,解析配置xml;
提供处理动态sql占位符支持)
|
核心处理层[sql执行]过程视图:

原文链接:http://www.cnblogs.com/wly1-6/p/10281844.html