失效链接处理 |
通用源码阅读指导?MYBATIS源码详解 易哥 PDF 下蝲
本站整理下蝲Q?/strong>
版权归出版社和原作者所有,链接已删除,误买正?/b>
用户下蝲说明Q?/strong>
?sh)子版仅供预览,下蝲?4时内务必删除,支持正版Q喜Ƣ的误买正版书c:(x)
http://product.dangdang.com/11066489388.html
相关截图Q?br />
![]() 资料介:(x) 本书以开源Y件MyBatis的源码ؓ(f)例,讲述E序源码阅读的流E、方法、技巧。本书先介绍MyBatis的发展背景与使用Ҏ(gu)让读者对MyBatis建立概括性的认识Q而逐步深入剖析MyBatis的源码。ƈ在剖析MyBatis源码的过E讲q源码中所涉及到的~程语言知识、设计模式、架构技巧?l得读者在详细了解MyBatis源码的同时掌握源码阅ȝ基本能力?/span> 资料目录Q?br /> W??背景介绍 W??源码阅读 2 1.1 源码阅读的意?2 1.2 源码阅读的方?2 1.3 开源Y?3 1.4 MyBatis源码 4 1.5 本书l构 5 1.5.1 背景知识 5 1.5.2 文g的指?5 1.5.3 Ҏ(gu)的指?8 W??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 ZMyBatis的数据库操作 16 2.3 MyBatis的核心功能分?17 W??MyBatisq行初探 20 3.1 初始化阶D追t?23 3.1.1 静态代码块的执?23 3.1.2 获取InputStream 24 3.1.3 配置信息d 25 3.1.4 ȝ 27 3.2 数据d阶段q踪 27 3.2.1 获得SqlSession 27 3.2.2 映射接口文g与映文件的l定 28 3.2.3 映射接口的代?28 3.2.4 SQL语句的查?31 3.2.5 查询l果~存 31 3.2.6 数据库查?33 3.2.7 处理l果?36 3.2.8 ȝ 39 W??MyBatis源码l构概述 40 4.1 包结?40 4.2 分组l构 40 W??基础功能包源码阅?/span> W??exceptions?44 5.1 背景知识 44 5.1.1 Java的异?44 5.1.2 序列化与反序列化 45 5.2 Exceptionc?46 5.3 ExceptionFactoryc?47 W??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 反射核心c?62 6.7 反射包装c?65 6.8 异常拆包工具 65 6.9 参数名解析器 68 6.10 泛型解析?69 W??annotations包与lang?76 7.1 Java注解详解 76 7.2 Param注解分析 78 W??type?81 8.1 模板模式 82 8.2 cd处理?83 8.2.1 cd处理器的基类与实现类 83 8.2.2 TypeReferencec?85 8.3 cd注册?86 W??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实现c?92 9.2.1 DefaultVFSc?94 9.2.2 JBoss6VFSc?94 9.3 cL件的加蝲 96 9.4 ResolverUtilc?97 W?0?logging?100 10.1 背景知识 100 10.1.1 适配器模?100 10.1.2 日志框架与日志?102 10.1.3 Z反射的动态代?103 10.2 Log接口 105 10.3 Log接口的实现类 107 10.4 LogFactory 108 10.5 JDBC日志打印 109 W?1?parsing?113 11.1 背景知识 113 11.1.1 XML文g 113 11.1.2 XPath 115 11.2 XML解析 116 11.3 文解析中的变量替换 118 W??配置解析包源码阅?/span> W?2?配置解析概述 124 W?3?binding?128 13.1 数据库操作的接入 128 13.1.1 数据库操作的Ҏ(gu)?129 13.1.2 数据库操作方法的接入 133 13.2 抽象Ҏ(gu)与数据库操作节点的关?134 13.3 数据库操作接入ȝ 136 13.3.1 初始化阶D?136 13.3.2 数据d阶段 137 13.4 MyBatis与Spring、Spring Boot的整?137 W?4?builder?139 14.1 建造者模?139 14.2 建造者基cM工具c?142 14.3 SqlSourceBuildercMStaticSqlSourcec?143 14.4 CacheRefResolvercdResultMapResolverc?145 14.4.1 CacheRefResolverc?145 14.4.2 ResultMapResolverc?146 14.5 ParameterExpressionc?148 14.6 XML文g解析 149 14.6.1 XML文g的声明解?150 14.6.2 配置文g解析 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 W?5?mapping?169 15.1 SQL语句处理功能 169 15.1.1 MappedStatementc?169 15.1.2 SqlSourcec?170 15.1.3 BoundSql 171 15.2 输出l果处理功能 171 15.2.1 ResultMapc?172 15.2.2 ResultMappingc?173 15.2.3 Discriminator 174 15.3 输入参数处理功能 176 15.4 多数据库U类处理功能 176 15.5 其他功能 178 W?6?ing?179 16.1 OGNL 179 16.2 语言驱动接口及语a驱动注册?183 16.3 SQL节点?wi)的l徏 186 16.4 SQL节点?wi)的解?189 16.4.1 OGNL辅助c?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 W?7?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 池化q接的给Z收回 220 17.5.3 池化q接 228 17.6 论数据源工厂 229 W??核心操作包源码阅?/span> W?8?jdbc?232 18.1 AbstractSQLcMSQLc?232 18.1.1 SafeAppendable内部c?232 18.1.2 SQLStatement内部c?233 18.1.3 AbstractSQLc?235 18.1.4 SQLc?236 18.2 SqlRunnerc?237 18.3 ScriptRunnerc?240 18.4 jdbc包的独立?241 W?9?cache?243 19.1 背景知识 243 19.1.1 Java对象的引用?243 19.1.2 ReferenceQueuec?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 d装饰?259 19.5.5 定时清理装饰?262 19.5.6 序列化装饰器 263 19.6 ~存的组?264 19.7 事务~存 267 19.8 MyBatis~存机制 271 19.8.1 一U缓?271 19.8.2 二~存 274 19.8.3 两~存机制 277 W?0?transaction?279 20.1 事务概述 279 20.2 事务接口及工?280 20.3 JDBC事务 282 20.4 容器事务 283 W?1?cursor?284 21.1 Iterable接口与Iterator接口 284 21.2 MyBatis中游标的使用 285 21.3 游标接口 285 21.4 默认游标 286 21.4.1 CursorStatus内部c?287 21.4.2 ObjectWrapperResultHandler内部c?287 21.4.3 CursorIterator内部c?288 21.4.4 DefaultCursor外部c?289 W?2?executor?293 22.1 背景知识 293 22.1.1 Zcglib的动态代?293 22.1.2 javassist框架的?295 22.1.3 序列化与反序列化中的Ҏ(gu) 296 22.1.4 ThreadLocal 302 22.1.5 存储q程 305 22.1.6 Statement及其子接?306 22.2 主键自增功能 308 22.2.1 主键自增的配|与生效 308 22.2.2 Jdbc3KeyGeneratorc?310 22.2.3 SelectKeyGeneratorc?312 22.3 懒加载功?316 22.3.1 懒加载功能的使用 316 22.3.2 懒加载功能的实现 318 22.3.3 懒加载功能对序列化和反序列化的支?325 22.4 语句处理功能 329 22.4.1 MyBatis对多语句cd的支?329 22.4.2 MyBatis的语句处理功?331 22.5 参数处理功能 333 22.6 l果处理功能 334 22.7 l果集处理功?336 22.7.1 MyBatis中多l果集的处理 337 22.7.2 l果集封装类 340 22.7.3 l果集处理器 341 22.8 执行?347 22.8.1 执行器接?348 22.8.2 执行器基cM实现c?348 22.9 错误上下?352 W?3?session?355 23.1 SqlSession及其相关c?355 23.1.1 SqlSession的生成链 356 23.1.2 DefaultSqlSessionc?357 23.1.3 SqlSessionManagerc?358 23.2 Configurationc?361 23.3 其他c?364 W?4?plugin?366 24.1 责Q链模?366 24.2 MyBatis插g开?368 24.3 MyBatis拦截器^?370 24.4 MyBatis拦截器链与拦截点 373 W??ȝ与展?/span> W?5?源码阅读ȝ 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 cL阅读 381 25.3.6 善于汇?381 25.3.7 |格阅读 382 W?6?优秀开源项目推?383 26.1 Guava 383 26.2 Tomcat 384 26.3 Redis 384 26.4 Dubbo 385 26.5 React 385 |