本書以MyBatis 3.4為基礎(chǔ),針對MyBatis的架構(gòu)設(shè)計和實現(xiàn)細節(jié)進行了詳細分析,其中穿插介紹了MyBatis源碼中涉及的基礎(chǔ)知識、設(shè)計模式以及筆者自己在實踐中的思考。本書共4章,從MyBatis快速入門開始,逐步分析了MyBatis的整體架構(gòu)以及核心概念,對MyBatis的基礎(chǔ)支持層、核心處理層中各個模塊的功能和實現(xiàn)細節(jié)進行了深入的剖析。除此之外,還分析了MyBatis插件的應(yīng)用場景和實現(xiàn)原理,介紹了MyBatis與Spring集成開發(fā)的示例和原理,以及一些實踐中的小技巧和小工具的使用方法。本書旨在為讀者理解MyBatis的設(shè)計原理、閱讀MyBatis源碼、擴展MyBatis功能提供幫助和指導(dǎo),讓讀者更加深入地了解MyBatis的運行原理、設(shè)計理念。希望本書能夠幫助讀者全面提升自身的技術(shù)能力,讓讀者在設(shè)計業(yè)務(wù)系統(tǒng)時,可以參考MyBatis的優(yōu)秀設(shè)計,更好地應(yīng)用MyBatis。
詳細分析MyBatis 3.4源碼,并融入了作者對MyBatis架構(gòu)設(shè)計的理解,還介紹以插件方式擴展MyBatis的原理以及與Spring集成的原理,跟著作者一起去探究MyBatis 的技術(shù)內(nèi)幕吧
徐郡明,武漢大學(xué)碩士,目前就職于航天科技集團旗下某研究所,主要負責(zé)政企云平臺基礎(chǔ)架構(gòu)的設(shè)計和研發(fā)工作,關(guān)注多項Java開源技術(shù)的發(fā)展。
第1章 MyBatis快速入門
1.1 ORM簡介
1.2 常見持久化框架
1.3 MyBatis示例
1.4 MyBatis整體架構(gòu)
1.4.1 基礎(chǔ)支持層
1.4.2 核心處理層
1.4.3 接口層
1.5 本章小結(jié)
第2章 基礎(chǔ)支持層
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 類型轉(zhuǎn)換
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調(diào)試
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接口及其實現(xiàn)
2.9.3 CacheKey
2.10 本章小結(jié)
第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 多結(jié)果集處理
3.3.7 游標(biāo)
3.3.8 輸出類型的參數(shù)
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 本章小結(jié)
第4章 高級主題
4.1 插件模塊
4.1.1 責(zé)任鏈模式
4.1.2 Interceptor
4.1.3 應(yīng)用場景分析
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 應(yīng)用<sql>節(jié)點
4.3.2 OgnlUtils工具類
4.3.3 SQL語句生成器
4.3.4 動態(tài)SQL腳本插件
4.3.5 MyBatis-Generator逆向工程
4.4 本章小結(jié)