• 最后更新 2023-09-08
  • 销量/好评 0 + 评论
  • 交易规则(重要)

正版书籍 通用源码阅读指导书——MyBatis源码详解 易哥著架构师程序员提升源码阅读系统架构软件开发能力编程语言电子工业出版社
本站优惠价
76.80
10.0折 原价:¥76.8
  • 销量
  • 卖家
  • 0+
  • 世纪书缘图书专营

服务由"世纪书缘图书专营"发货,并提供售后服务。

    担保交易,安全保证,有问题不解决可申请退款。购买前请询问清楚卖家,以卖家承诺为准! 自动发货商品,随时可以购买,付款后在订单详情下载,零等待。 不同会员等级尊享不同购买折扣。
天猫优惠券

天猫优惠券

已缴纳保证金

该商家已加入保障计划


商品参数
通用源码阅读指导书——MyBatis源码详解
定价 100.00
出版社 电子工业出版社
版次 第1版
出版时间 2020年07月
开本 16开
作者 易哥
装帧 ping塑勒
页数 0
字数 640000
ISBN编码 9787121391460
重量 710

内容介绍
本书以开源软件MyBatis的源码为例,讲述程序源码阅读的流程、方法、技巧。本书先介绍MyBatis的发展背景与使用方法让读者对MyBatis建立概括性的认识,继而逐步深入剖析MyBatis的源码。并在剖析MyBatis源码的过程讲述源码中所涉及到的编程语言知识、设计模式、架构技巧。#终使得读者在详细了解MyBatis源码的同时掌握源码阅读的基本能力。
目录
第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拦截器ping台 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
作者介绍
易哥,毕业于浙江大学、山东大学,高#级软件系统架构师、网络工程师、数据库工程师、软件测试工程师、注册电气工程师。在校成绩前1%,获得国家奖学金两次,一等奖学金四次,科技创新大赛一等奖三次,以及五四青年科学奖等。主要科研方向为机器学习、分布式算法、容错算法在无线传感网络中的应用,相关论文获得IEEE通信协会#佳论文奖。曾担任网站技术部门负责人,具有丰富的互联网开发经验。先后设计和实现了众多系统和ping台,也是活跃的开源开发#者。现专注软件系统架构设计与后端开发,著有书籍《通用源码阅读指导书》《高性能架构之道》等。 正版书籍 通用源码阅读指导书——MyBatis源码详解 易哥著架构师程序员提升源码阅读系统架构软件开发能力编程语言电子工业出版社
关联推荐
软件开发人员、软件开发方向的学生
  • 商品评价
  • 交易规则


  • 发货方式


  • 自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。

    手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。


  • 退款说明


  • 1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);

  • 2、营销推广:未达到卖家描述标准的;

    3、点卡软件所售点卡软件无法使用的;

  • 3、发货:手动发货商品,在卖家未发货前就申请了退款的;

    4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)

    5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。

  • 注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!


  • 注意事项


  • 1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);

    2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);

  • 3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

  • 4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

    5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

    6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。


  • 送码声明


  • 1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

  • 2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。


热门推荐
浏览记录