展开全部

主编推荐语

详解MyBatis源码,提升阅读能力和开发技巧。

内容简介

本书是一本以MyBatis源码为材料,详细介绍源码阅读相关方法和技巧的指导书籍。本书以MyBatis源码中的包为单位,详细和透彻地介绍每个类的源码,包括其背景知识、组织方式、逻辑结构和实现细节。在本书的讲解中,不漏过每一个类,不跳过每一个难点,做到深浅一致。在阅读MyBatis源码的过程中,本书使用了运行初探、模块归类、合理猜测、类比阅读、网格阅读等许多源码阅读方法。最后,本书对这些源码阅读方法进行了总结整理。本书适合想要开展源码阅读、想要借鉴优秀设计和想要深入了解MyBatis原理的开发者阅读使用。本书能让读者在详细了解MyBatis源码的基础上提升自己的源码阅读能力、系统架构能力及软件开发能力。

目录

  • 封面
  • 作者简介
  • 版权信息
  • 内容简介
  • 前言
  • 第1篇 背景介绍
  • 第1章 源码阅读
  • 1.1 源码阅读的意义
  • 1.2 源码阅读的方法
  • 1.3 开源软件
  • 1.4 MyBatis源码
  • 1.5 本书结构
  • 1.5.1 背景知识
  • 1.5.2 文件的指代
  • 1.5.3 方法的指代
  • 第2章 MyBatis概述
  • 2.1 背景介绍
  • 2.1.1 传统数据库连接
  • 2.1.2 ORM框架
  • 2.1.3 MyBatis的特点
  • 2.2 快速上手
  • 2.2.1 MyBatis包的引入
  • 2.2.2 MyBatis的简单配置
  • 2.2.3 基于MyBatis的数据库操作
  • 2.3 MyBatis的核心功能分析
  • 第3章 MyBatis运行初探
  • 3.1 初始化阶段追踪
  • 3.1.1 静态代码块的执行
  • 3.1.2 获取InputStream
  • 3.1.3 配置信息读取
  • 3.1.4 总结
  • 3.2 数据读写阶段追踪
  • 3.2.1 获得SqlSession
  • 3.2.2 映射接口文件与映射文件的绑定
  • 3.2.3 映射接口的代理
  • 3.2.4 SQL语句的查找
  • 3.2.5 查询结果缓存
  • 3.2.6 数据库查询
  • 3.2.7 处理结果集
  • 3.2.8 总结
  • 第4章 MyBatis源码结构概述
  • 4.1 包结构
  • 4.2 分组结构
  • 第2篇 基础功能包源码阅读
  • 第5章 exceptions包
  • 5.1 背景知识
  • 5.1.1 Java的异常
  • 5.1.2 序列化与反序列化
  • 5.2 Exception类
  • 5.3 ExceptionFactory类
  • 第6章 reflection包
  • 6.1 背景知识
  • 6.1.1 装饰器模式
  • 6.1.2 反射
  • 6.1.3 Type接口及其子类
  • 6.2 对象工厂子包
  • 6.3 执行器子包
  • 6.4 属性子包
  • 6.5 对象包装器子包
  • 6.6 反射核心类
  • 6.7 反射包装类
  • 6.8 异常拆包工具
  • 6.9 参数名解析器
  • 6.10 泛型解析器
  • 第7章 annotations包与lang包
  • 7.1 Java注解详解
  • 7.2 Param注解分析
  • 第8章 type包
  • 8.1 模板模式
  • 8.2 类型处理器
  • 8.2.1 类型处理器的基类与实现类
  • 8.2.2 TypeReference类
  • 8.3 类型注册表
  • 第9章 io包
  • 9.1 背景知识
  • 9.1.1 单例模式
  • 9.1.2 代理模式
  • 9.1.3 静态代理
  • 9.1.4 VFS
  • 9.2 VFS实现类
  • 9.2.1 DefaultVFS类
  • 9.2.2 JBoss6VFS类
  • 9.3 类文件的加载
  • 9.4 ResolverUtil类
  • 第10章 logging包
  • 10.1 背景知识
  • 10.1.1 适配器模式
  • 10.1.2 日志框架与日志级别
  • 10.1.3 基于反射的动态代理
  • 10.2 Log接口
  • 10.3 Log接口的实现类
  • 10.4 LogFactory
  • 10.5 JDBC日志打印
  • 第11章 parsing包
  • 11.1 背景知识
  • 11.1.1 XML文件
  • 11.1.2 XPath
  • 11.2 XML解析
  • 11.3 文档解析中的变量替换
  • 第3篇 配置解析包源码阅读
  • 第12章 配置解析概述
  • 第13章 binding包
  • 13.1 数据库操作的接入
  • 13.1.1 数据库操作的方法化
  • 13.1.2 数据库操作方法的接入
  • 13.2 抽象方法与数据库操作节点的关联
  • 13.3 数据库操作接入总结
  • 13.3.1 初始化阶段
  • 13.3.2 数据读写阶段
  • 13.4 MyBatis与Spring、Spring Boot的整合
  • 第14章 builder包
  • 14.1 建造者模式
  • 14.2 建造者基类与工具类
  • 14.3 SqlSourceBuilder类与StaticSqlSource类
  • 14.4 CacheRefResolver类和ResultMapResolver类
  • 14.4.1 CacheRefResolver类
  • 14.4.2 ResultMapResolver类
  • 14.5 ParameterExpression类
  • 14.6 XML文件解析
  • 14.6.1 XML文件的声明解析
  • 14.6.2 配置文件解析
  • 14.6.3 数据库操作语句解析
  • 14.6.4 Statement解析
  • 14.6.5 引用解析
  • 14.7 注解映射的解析
  • 14.7.1 注解映射的使用
  • 14.7.2 注解映射解析的触发
  • 14.7.3 直接注解映射的解析
  • 14.7.4 间接注解映射的解析
  • 第15章 mapping包
  • 15.1 SQL语句处理功能
  • 15.1.1 MappedStatement类
  • 15.1.2 SqlSource类
  • 15.1.3 BoundSql
  • 15.2 输出结果处理功能
  • 15.2.1 ResultMap类
  • 15.2.2 ResultMapping类
  • 15.2.3 Discriminator
  • 15.3 输入参数处理功能
  • 15.4 多数据库种类处理功能
  • 15.5 其他功能
  • 第16章 scripting包
  • 16.1 OGNL
  • 16.2 语言驱动接口及语言驱动注册表
  • 16.3 SQL节点树的组建
  • 16.4 SQL节点树的解析
  • 16.4.1 OGNL辅助类
  • 16.4.2 表达式求值器
  • 16.4.3 动态上下文
  • 16.4.4 SQL节点及其解析
  • 16.5 再论SqlSource
  • 16.5.1 SqlSource的生成
  • 16.5.2 DynamicSqlSource的转化
  • 16.5.3 RawSqlSource的转化
  • 16.5.4 SqlSource接口的实现类总结
  • 第17章 datasource包
  • 17.1 背景知识
  • 17.1.1 java.sql包和javax.sql包
  • 17.1.2 DriverManager
  • 17.1.3 DataSource
  • 17.1.4 Connection
  • 17.1.5 Statement
  • 17.2 数据源工厂接口
  • 17.3 JNDI数据源工厂
  • 17.4 非池化数据源及工厂
  • 17.4.1 非池化数据源工厂
  • 17.4.2 非池化数据源
  • 17.5 池化数据源
  • 17.5.1 池化数据源类的属性
  • 17.5.2 池化连接的给出与收回
  • 17.5.3 池化连接
  • 17.6 论数据源工厂
  • 第4篇 核心操作包源码阅读
  • 第18章 jdbc包
  • 18.1 AbstractSQL类与SQL类
  • 18.1.1 SafeAppendable内部类
  • 18.1.2 SQLStatement内部类
  • 18.1.3 AbstractSQL类
  • 18.1.4 SQL类
  • 18.2 SqlRunner类
  • 18.3 ScriptRunner类
  • 18.4 jdbc包的独立性
  • 第19章 cache包
  • 19.1 背景知识
  • 19.1.1 Java对象的引用级别
  • 19.1.2 ReferenceQueue类
  • 19.2 cache包结构与Cache接口
  • 19.3 缓存键
  • 19.3.1 缓存键的原理
  • 19.3.2 缓存键的生成
  • 19.4 缓存的实现类
  • 19.5 缓存装饰器
  • 19.5.1 同步装饰器
  • 19.5.2 日志装饰器
  • 19.5.3 清理装饰器
  • 19.5.4 阻塞装饰器
  • 19.5.5 定时清理装饰器
  • 19.5.6 序列化装饰器
  • 19.6 缓存的组建
  • 19.7 事务缓存
  • 19.8 MyBatis缓存机制
  • 19.8.1 一级缓存
  • 19.8.2 二级缓存
  • 19.8.3 两级缓存机制
  • 第20章 transaction包
  • 20.1 事务概述
  • 20.2 事务接口及工厂
  • 20.3 JDBC事务
  • 20.4 容器事务
  • 第21章 cursor包
  • 21.1 Iterable接口与Iterator接口
  • 21.2 MyBatis中游标的使用
  • 21.3 游标接口
  • 21.4 默认游标
  • 21.4.1 CursorStatus内部类
  • 21.4.2 ObjectWrapperResultHandler内部类
  • 21.4.3 CursorIterator内部类
  • 21.4.4 DefaultCursor外部类
  • 第22章 executor包
  • 22.1 背景知识
  • 22.1.1 基于cglib的动态代理
  • 22.1.2 javassist框架的使用
  • 22.1.3 序列化与反序列化中的方法
  • 22.1.4 ThreadLocal
  • 22.1.5 存储过程
  • 22.1.6 Statement及其子接口
  • 22.2 主键自增功能
  • 22.2.1 主键自增的配置与生效
  • 22.2.2 Jdbc3KeyGenerator类
  • 22.2.3 SelectKeyGenerator类
  • 22.3 懒加载功能
  • 22.3.1 懒加载功能的使用
  • 22.3.2 懒加载功能的实现
  • 22.3.3 懒加载功能对序列化和反序列化的支持
  • 22.4 语句处理功能
  • 22.4.1 MyBatis对多语句类型的支持
  • 22.4.2 MyBatis的语句处理功能
  • 22.5 参数处理功能
  • 22.6 结果处理功能
  • 22.7 结果集处理功能
  • 22.7.1 MyBatis中多结果集的处理
  • 22.7.2 结果集封装类
  • 22.7.3 结果集处理器
  • 22.8 执行器
  • 22.8.1 执行器接口
  • 22.8.2 执行器基类与实现类
  • 22.9 错误上下文
  • 第23章 session包
  • 23.1 SqlSession及其相关类
  • 23.1.1 SqlSession的生成链
  • 23.1.2 DefaultSqlSession类
  • 23.1.3 SqlSessionManager类
  • 23.2 Configuration类
  • 23.3 其他类
  • 第24章 plugin包
  • 24.1 责任链模式
  • 24.2 MyBatis插件开发
  • 24.3 MyBatis拦截器平台
  • 24.4 MyBatis拦截器链与拦截点
  • 第5篇 总结与展望
  • 第25章 源码阅读总结
  • 25.1 前期准备
  • 25.1.1 工具准备
  • 25.1.2 项目选择
  • 25.1.3 项目使用
  • 25.2 项目初探
  • 25.3 源码阅读
  • 25.3.1 模块分析
  • 25.3.2 模块归类
  • 25.3.3 自底向上
  • 25.3.4 合理猜测
  • 25.3.5 类比阅读
  • 25.3.6 善于汇总
  • 25.3.7 网格阅读
  • 第26章 优秀开源项目推荐
  • 26.1 Guava
  • 26.2 Tomcat
  • 26.3 Redis
  • 26.4 Dubbo
  • 26.5 React
  • 反侵权盗版声明
  • 封底
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。