第1章 MyBatis快速入门 1
1.1 ORM简介 1
1.2常见持久化框架 3
1.3 MyBatis示例 7
1.4 MyBatis整体架构 10
1.4.1基础支持层 11
1.4.2核心处理层 13
1.4.3接口层 15
1.5本章小结 15
第2章 基础支持层 16
2.1解析器模块 16
2.1.1 XPath简介 20
2.1.2 XPathParser 23
2.2反射工具箱 32
2.2.1 Reflector&ReflectorFactory 32
2.2.2 TypeParameterResolver 40
2.2.3 ObjectFactory 49
2.2.4 Property工具集 51
2.2.5 MetaClass 54
2.2.6 ObjectWrapper 59
2.2.7 MetaObject 62
2.3类型转换 66
2.3.1 TypeHandler 67
2.3.2 TypeHandlerRegistry 69
2.3.3 TypeAliasRegistry 77
2.4日志模块 79
2.4.1适配器模式 79
2.4.2日志适配器 81
2.4.3代理模式与JDK动态代理 83
2.4.4 JDBC调试 88
2.5资源加载 93
2.5.1类加载器简介 93
2.5.2 ClassLoaderWrapper 95
2.5.3 ResolverUtil 97
2.5.4单例模式 100
2.5.5 VFS 104
2.6 DataSource 106
2.6.1工厂方法模式 107
2.6.2 DataSourceFactory 108
2.6.3 UnpooledDataSource 109
2.6.4 PooledDataSource 112
2.7 Transaction 123
2.8 binding模块 125
2.8.1 MapperRegistry&MapperProxyFactory 126
2.8.2 MapperProxy 128
2.8.3 MapperMethod 130
2.9缓存模块 140
2.9.1装饰器模式 141
2.9.2 Cache接口及其实现 143
2.9.3 CacheKey 155
2.10本章小结 158
第3章 核心处理层 159
3.1 MyBatis初始化 159
3.1.1建造者模式 160
3.1.2 BaseBuilder 161
3.1.3 XMLConfigBuilder 163
3.1.4 XMLMapperBuilder 173
3.1.5 XMLStatementBuilder 195
3.1.6绑定Mapper接口 205
3.1.7处理incomplete*集合 207
3.2 SqlNode&SqlSource 208
3.2.1组合模式 209
3.2.2 OGNL表达式简介 210
3.2.3 DynamicContext 214
3.2.4 SqlNode 215
3.2.5 SqlSourceBuilder 229
3.2.6 DynamicSqlSource 233
3.2.7 RawSqlSource 234
3.3 ResultSetHandler 236
3.3.1 handleResultSets()方法 237
3.3.2 ResultSetWrapper 242
3.3.3简单映射 244
3.3.4嵌套映射 260
3.3.5嵌套查询&延迟加载 278
3.3.6多结果集处理 294
3.3.7游标 298
3.3.8输出类型的参数 301
3.4 KeyGenerator 303
3.4.1 Jdbc3KeyGenerator 303
3.4.2 SelectkeyGenerator 306
3.5 StatementHandler 309
3.5.1 RoutingStatementHandler 310
3.5.2 BaseStatementHandler 311
3.5.3 ParameterHandler 312
3.5.4 SimpleStatementHandler 314
3.5.5 PreparedStatementHandler 316
3.6 Executor 317
3.6.1模板方法模式 318
3.6.2 BaseExecutor 320
3.6.3 SimpleExecutor 329
3.6.4 ReuseExecutor 330
3.6.5 BatchExecutor 332
3.6.6 CachingExecutor 335
3.7接口层 344
3.7.1策略模式 346
3.7.2 SqlSession 347
3.7.3 DefaultSqlSessionFactory 349
3.7.4 SqlSessionManager 350
3.8本章小结 353
第4章 高级主题 354
4.1插件模块 354
4.1.1责任链模式 354
4.1.2 Interceptor 355
4.1.3应用场景分析 360
4.2 MyBatis与Spring集成 389
4.2.1 Spring基本概念 389
4.2.2 Spring MVC介绍 391
4.2.3集成环境搭建 393
4.2.4 Mybatis-Spring 剖析 402
4.3拾遗 413
4.3.1应用<sql>节点 414
4.3.2 OgnlUtils工具类 418
4.3.3 SQL语句生成器 422
4.3.4动态SQL脚本插件 424
4.3.5 MyBatis-Generator逆向工程 426
4.4本章小结 432