本書以MyBatis 3.4為基礎,針對MyBatis的架構設計和實現細節(jié)進行了詳細分析,其中穿插介紹了MyBatis源碼中涉及的基礎知識、設計模式以及筆者自己在實踐中的思考。本書共4章,從MyBatis快速入門開始,逐步分析了MyBatis的整體架構以及核心概念,對MyBatis的基礎支持層、核心處理層中各個模塊的功能和實現細節(jié)進行了深入的剖析。除此之外,還分析了MyBatis插件的應用場景和實現原理,介紹了MyBatis與Spring集成開發(fā)的示例和原理,以及一些實踐中的小技巧和小工具的使用方法。本書旨在為讀者理解MyBatis的設計原理、閱讀MyBatis源碼、擴展MyBatis功能提供幫助和指導,讓讀者更加深入地了解MyBatis的運行原理、設計理念。希望本書能夠幫助讀者全面提升自身的技術能力,讓讀者在設計業(yè)務系統(tǒng)時,可以參考MyBatis的優(yōu)秀設計,更好地應用MyBatis。
詳細分析MyBatis 3.4源碼,并融入了作者對MyBatis架構設計的理解,還介紹以插件方式擴展MyBatis的原理以及與Spring集成的原理,跟著作者一起去探究MyBatis 的技術內幕吧
徐郡明,武漢大學碩士,目前就職于航天科技集團旗下某研究所,主要負責政企云平臺基礎架構的設計和研發(fā)工作,關注多項Java開源技術的發(fā)展。
第1章 MyBatis快速入門
1.1 ORM簡介
1.2 常見持久化框架
1.3 MyBatis示例
1.4 MyBatis整體架構
1.4.1 基礎支持層
1.4.2 核心處理層
1.4.3 接口層
1.5 本章小結
第2章 基礎支持層
2.1 解析器模塊
2.1.1 XPath簡介
2.1.2 XPathParser
2.2 反射工具箱
2.2.1 Reflector&ReflectorFactory
2.2.2 TypeParameterResolver
2.2.3 ObjectFactory
2.2.4 Property工具集
2.2.5 MetaClass
2.2.6 ObjectWrapper
2.2.7 MetaObject
2.3 類型轉換
2.3.1 TypeHandler
2.3.2 TypeHandlerRegistry
2.3.3 TypeAliasRegistry
2.4 日志模塊
2.4.1 適配器模式
2.4.2 日志適配器
2.4.3 代理模式與JDK動態(tài)代理
2.4.4 JDBC調試
2.5 資源加載
2.5.1 類加載器簡介
2.5.2 ClassLoaderWrapper
2.5.3 ResolverUtil
2.5.4 單例模式
2.5.5 VFS
2.6 DataSource
2.6.1 工廠方法模式
2.6.2 DataSourceFactory
2.6.3 UnpooledDataSource
2.6.4 PooledDataSource
2.7 Transaction
2.8 binding模塊
2.8.1 MapperRegistry&MapperProxyFactory
2.8.2 MapperProxy
2.8.3 MapperMethod
2.9 緩存模塊
2.9.1 裝飾器模式
2.9.2 Cache接口及其實現
2.9.3 CacheKey
2.10 本章小結
第3章 核心處理層
3.1 MyBatis初始化
3.1.1 建造者模式
3.1.2 BaseBuilder
3.1.3 XMLConfigBuilder
3.1.4 XMLMapperBuilder
3.1.5 XMLStatementBuilder
3.1.6 綁定Mapper接口
3.1.7 處理incomplete*集合
3.2 SqlNode&SqlSource
3.2.1 組合模式
3.2.2 OGNL表達式簡介
3.2.3 DynamicContext
3.2.4 SqlNode
3.2.5 SqlSourceBuilder
3.2.6 DynamicSqlSource
3.2.7 RawSqlSource
3.3 ResultSetHandler
3.3.1 handleResultSets()方法
3.3.2 ResultSetWrapper
3.3.3 簡單映射
3.3.4 嵌套映射
3.3.5 嵌套查詢&延遲加載
3.3.6 多結果集處理
3.3.7 游標
3.3.8 輸出類型的參數
3.4 KeyGenerator
3.4.1 Jdbc3KeyGenerator
3.4.2 SelectkeyGenerator
3.5 StatementHandler
3.5.1 RoutingStatementHandler
3.5.2 BaseStatementHandler
3.5.3 ParameterHandler
3.5.4 SimpleStatementHandler
3.5.5 PreparedStatementHandler
3.6 Executor
3.6.1 模板方法模式
3.6.2 BaseExecutor
3.6.3 SimpleExecutor
3.6.4 ReuseExecutor
3.6.5 BatchExecutor
3.6.6 CachingExecutor
3.7 接口層
3.7.1 策略模式
3.7.2 SqlSession
3.7.3 DefaultSqlSessionFactory
3.7.4 SqlSessionManager
3.8 本章小結
第4章 高級主題
4.1 插件模塊
4.1.1 責任鏈模式
4.1.2 Interceptor
4.1.3 應用場景分析
4.2 MyBatis與Spring集成
4.2.1 Spring基本概念
4.2.2 Spring MVC介紹
4.2.3 集成環(huán)境搭建
4.2.4 Mybatis-Spring剖析
4.3 拾遺
4.3.1 應用<sql>節(jié)點
4.3.2 OgnlUtils工具類
4.3.3 SQL語句生成器
4.3.4 動態(tài)SQL腳本插件
4.3.5 MyBatis-Generator逆向工程
4.4 本章小結