好书推荐 好书速递 排行榜 读书文摘

通用源码阅读指导书――MyBatis源码详解

通用源码阅读指导书――MyBatis源码详解
作者:易哥
出版社:电子工业出版社
出版年:2000-01
ISBN:9787121391460
行业:其它
浏览数:9

内容简介

......(更多)

作者简介

......(更多)

目录

第1篇 背景介绍

第1章 源码阅读 2

1.1 源码阅读的意义 2

1.2 源码阅读的方法 2

1.3 开源软件 3

1.4 MyBatis源码 4

1.5 本书结构 5

1.5.1 背景知识 5

1.5.2 文件的指代 5

1.5.3 方法的指代 8

第2章 MyBatis概述 10

2.1 背景介绍 10

2.1.1 传统数据库连接 10

2.1.2 ORM框架 11

2.1.3 MyBatis的特点 12

2.2 快速上手 12

2.2.1 MyBatis包的引入 14

2.2.2 MyBatis的简单配置 15

2.2.3 基于MyBatis的数据库操作 16

2.3 MyBatis的核心功能分析 17

第3章 MyBatis运行初探 20

3.1 初始化阶段追踪 23

3.1.1 静态代码块的执行 23

3.1.2 获取InputStream 24

3.1.3 配置信息读取 25

3.1.4 总结 27

3.2 数据读写阶段追踪 27

3.2.1 获得SqlSession 27

3.2.2 映射接口文件与映射文件的绑定 28

3.2.3 映射接口的代理 28

3.2.4 SQL语句的查找 31

3.2.5 查询结果缓存 31

3.2.6 数据库查询 33

3.2.7 处理结果集 36

3.2.8 总结 39

第4章 MyBatis源码结构概述 40

4.1 包结构 40

4.2 分组结构 40

第2篇 基础功能包源码阅读

第5章 exceptions包 44

5.1 背景知识 44

5.1.1 Java的异常 44

5.1.2 序列化与反序列化 45

5.2 Exception类 46

5.3 ExceptionFactory类 47

第6章 reflection包 48

6.1 背景知识 48

6.1.1 装饰器模式 48

6.1.2 反射 50

6.1.3 Type接口及其子类 54

6.2 对象工厂子包 55

6.3 执行器子包 57

6.4 属性子包 59

6.5 对象包装器子包 61

6.6 反射核心类 62

6.7 反射包装类 65

6.8 异常拆包工具 65

6.9 参数名解析器 68

6.10 泛型解析器 69

第7章 annotations包与lang包 76

7.1 Java注解详解 76

7.2 Param注解分析 78

第8章 type包 81

8.1 模板模式 82

8.2 类型处理器 83

8.2.1 类型处理器的基类与实现类 83

8.2.2 TypeReference类 85

8.3 类型注册表 86

第9章 io包 89

9.1 背景知识 89

9.1.1 单例模式 89

9.1.2 代理模式 89

9.1.3 静态代理 90

9.1.4 VFS 92

9.2 VFS实现类 92

9.2.1 DefaultVFS类 94

9.2.2 JBoss6VFS类 94

9.3 类文件的加载 96

9.4 ResolverUtil类 97

第10章 logging包 100

10.1 背景知识 100

10.1.1 适配器模式 100

10.1.2 日志框架与日志级别 102

10.1.3 基于反射的动态代理 103

10.2 Log接口 105

10.3 Log接口的实现类 107

10.4 LogFactory 108

10.5 JDBC日志打印 109

第11章 parsing包 113

11.1 背景知识 113

11.1.1 XML文件 113

11.1.2 XPath 115

11.2 XML解析 116

11.3 文档解析中的变量替换 118

第3篇 配置解析包源码阅读

第12章 配置解析概述 124

第13章 binding包 128

13.1 数据库操作的接入 128

13.1.1 数据库操作的方法化 129

13.1.2 数据库操作方法的接入 133

13.2 抽象方法与数据库操作节点的关联 134

13.3 数据库操作接入总结 136

13.3.1 初始化阶段 136

13.3.2 数据读写阶段 137

13.4 MyBatis与Spring、Spring Boot的整合 137

第14章 builder包 139

14.1 建造者模式 139

14.2 建造者基类与工具类 142

14.3 SqlSourceBuilder类与StaticSqlSource类 143

14.4 CacheRefResolver类和ResultMapResolver类 145

14.4.1 CacheRefResolver类 145

14.4.2 ResultMapResolver类 146

14.5 ParameterExpression类 148

14.6 XML文件解析 149

14.6.1 XML文件的声明解析 150

14.6.2 配置文件解析 151

14.6.3 数据库操作语句解析 153

14.6.4 Statement解析 155

14.6.5 引用解析 157

14.7 注解映射的解析 159

14.7.1 注解映射的使用 159

14.7.2 注解映射解析的触发 160

14.7.3 直接注解映射的解析 164

14.7.4 间接注解映射的解析 164

第15章 mapping包 169

15.1 SQL语句处理功能 169

15.1.1 MappedStatement类 169

15.1.2 SqlSource类 170

15.1.3 BoundSql 171

15.2 输出结果处理功能 171

15.2.1 ResultMap类 172

15.2.2 ResultMapping类 173

15.2.3 Discriminator 174

15.3 输入参数处理功能 176

15.4 多数据库种类处理功能 176

15.5 其他功能 178

第16章 scripting包 179

16.1 OGNL 179

16.2 语言驱动接口及语言驱动注册表 183

16.3 SQL节点树的组建 186

16.4 SQL节点树的解析 189

16.4.1 OGNL辅助类 189

16.4.2 表达式求值器 193

16.4.3 动态上下文 194

16.4.4 SQL节点及其解析 196

16.5 再论SqlSource 202

16.5.1 SqlSource的生成 202

16.5.2 DynamicSqlSource的转化 205

16.5.3 RawSqlSource的转化 206

16.5.4 SqlSource接口的实现类总结 207

第17章 datasource包 208

17.1 背景知识 208

17.1.1 java.sql包和javax.sql包 208

17.1.2 DriverManager 209

17.1.3 DataSource 209

17.1.4 Connection 210

17.1.5 Statement 211

17.2 数据源工厂接口 211

17.3 JNDI数据源工厂 213

17.4 非池化数据源及工厂 214

17.4.1 非池化数据源工厂 214

17.4.2 非池化数据源 216

17.5 池化数据源 218

17.5.1 池化数据源类的属性 218

17.5.2 池化连接的给出与收回 220

17.5.3 池化连接 228

17.6 论数据源工厂 229

第4篇 核心操作包源码阅读

第18章 jdbc包 232

18.1 AbstractSQL类与SQL类 232

18.1.1 SafeAppendable内部类 232

18.1.2 SQLStatement内部类 233

18.1.3 AbstractSQL类 235

18.1.4 SQL类 236

18.2 SqlRunner类 237

18.3 ScriptRunner类 240

18.4 jdbc包的独立性 241

第19章 cache包 243

19.1 背景知识 243

19.1.1 Java对象的引用级别 243

19.1.2 ReferenceQueue类 244

19.2 cache包结构与Cache接口 247

19.3 缓存键 248

19.3.1 缓存键的原理 248

19.3.2 缓存键的生成 251

19.4 缓存的实现类 252

19.5 缓存装饰器 252

19.5.1 同步装饰器 253

19.5.2 日志装饰器 253

19.5.3 清理装饰器 254

19.5.4 阻塞装饰器 259

19.5.5 定时清理装饰器 262

19.5.6 序列化装饰器 263

19.6 缓存的组建 264

19.7 事务缓存 267

19.8 MyBatis缓存机制 271

19.8.1 一级缓存 271

19.8.2 二级缓存 274

19.8.3 两级缓存机制 277

第20章 transaction包 279

20.1 事务概述 279

20.2 事务接口及工厂 280

20.3 JDBC事务 282

20.4 容器事务 283

第21章 cursor包 284

21.1 Iterable接口与Iterator接口 284

21.2 MyBatis中游标的使用 285

21.3 游标接口 285

21.4 默认游标 286

21.4.1 CursorStatus内部类 287

21.4.2 ObjectWrapperResultHandler内部类 287

21.4.3 CursorIterator内部类 288

21.4.4 DefaultCursor外部类 289

第22章 executor包 293

22.1 背景知识 293

22.1.1 基于cglib的动态代理 293

22.1.2 javassist框架的使用 295

22.1.3 序列化与反序列化中的方法 296

22.1.4 ThreadLocal 302

22.1.5 存储过程 305

22.1.6 Statement及其子接口 306

22.2 主键自增功能 308

22.2.1 主键自增的配置与生效 308

22.2.2 Jdbc3KeyGenerator类 310

22.2.3 SelectKeyGenerator类 312

22.3 懒加载功能 316

22.3.1 懒加载功能的使用 316

22.3.2 懒加载功能的实现 318

22.3.3 懒加载功能对序列化和反序列化的支持 325

22.4 语句处理功能 329

22.4.1 MyBatis对多语句类型的支持 329

22.4.2 MyBatis的语句处理功能 331

22.5 参数处理功能 333

22.6 结果处理功能 334

22.7 结果集处理功能 336

22.7.1 MyBatis中多结果集的处理 337

22.7.2 结果集封装类 340

22.7.3 结果集处理器 341

22.8 执行器 347

22.8.1 执行器接口 348

22.8.2 执行器基类与实现类 348

22.9 错误上下文 352

第23章 session包 355

23.1 SqlSession及其相关类 355

23.1.1 SqlSession的生成链 356

23.1.2 DefaultSqlSession类 357

23.1.3 SqlSessionManager类 358

23.2 Configuration类 361

23.3 其他类 364

第24章 plugin包 366

24.1 责任链模式 366

24.2 MyBatis插件开发 368

24.3 MyBatis拦截器平台 370

24.4 MyBatis拦截器链与拦截点 373

第5篇 总结与展望

第25章 源码阅读总结 378

25.1 前期准备 378

25.1.1 工具准备 378

25.1.2 项目选择 378

25.1.3 项目使用 379

25.2 项目初探 379

25.3 源码阅读 380

25.3.1 模块分析 380

25.3.2 模块归类 380

25.3.3 自底向上 380

25.3.4 合理猜测 381

25.3.5 类比阅读 381

25.3.6 善于汇总 381

25.3.7 网格阅读 382

第26章 优秀开源项目推荐 383

26.1 Guava 383

26.2 Tomcat 384

26.3 Redis 384

26.4 Dubbo 385

26.5 React 385

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看