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

通用源码阅读指导书 MyBatis源码详解 易哥著 编程语言知识设计模式架构技巧 MyBatis源码程序源码阅读的流程方法技巧图书籍
本站优惠价
71.80
7.2折 原价:¥100.00
  • 销量
  • 卖家
  • 0+
  • 兰兴达图书专营店

服务由"兰兴达图书专营店"发货,并提供售后服务。

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

天猫优惠券

已缴纳保证金

该商家已加入保障计划

基本信息.jpg

内容简介.jpg

目录.jpg

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  获取InputStream24

3.1.3  配置信息读取25

3.1.4  总结27

3.2  数据读写阶段追踪27

3.2.1  获得SqlSession27

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章  eceptions包44

5.1  背景知识44

5.1.1  Java的异常44

5.1.2  序列化与反序列化45

5.2  Eception类46

5.3  EceptionFactory类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章  antations包与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  VFS92

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  LogFactory108

10.5  JDBC日志打印109

11章  parsing包113

11.1  背景知识113

11.1.1  XML文件113

11.1.2  XPath115

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  ParameterEpression类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  BoundSql171

15.2  输出结果处理功能171

15.2.1  ResultMap类172

15.2.2  ResultMapping类173

15.2.3  Discriminator174

15.3  输入参数处理功能176

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

15.5  其他功能178

16章  scripting包179

16.1  OGNL179

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  再论SqlSource202

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包和java.sql包208

17.1.2  DriverManager209

17.1.3  DataSource209

17.1.4  Connection210

17.1.5  Statement211

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章  eecutor包293

22.1  背景知识293

22.1.1  基于cglib的动态代理293

22.1.2  javassist框架的使用295

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

22.1.4  ThreadLocal302

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  Guava383

26.2  Tomcat384

26.3  Redis384

26.4  Dubbo385

26.5  React3851篇  背景介绍

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  获取InputStream24

3.1.3  配置信息读取25

3.1.4  总结27

3.2  数据读写阶段追踪27

3.2.1  获得SqlSession27

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章  eceptions包44

5.1  背景知识44

5.1.1  Java的异常44

5.1.2  序列化与反序列化45

5.2  Eception类46

5.3  EceptionFactory类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章  antations包与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  VFS92

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  LogFactory108

10.5  JDBC日志打印109

11章  parsing包113

11.1  背景知识113

11.1.1  XML文件113

11.1.2  XPath115

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  ParameterEpression类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  BoundSql171

15.2  输出结果处理功能171

15.2.1  ResultMap类172

15.2.2  ResultMapping类173

15.2.3  Discriminator174

15.3  输入参数处理功能176

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

15.5  其他功能178

16章  scripting包179

16.1  OGNL179

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  再论SqlSource202

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包和java.sql包208

17.1.2  DriverManager209

17.1.3  DataSource209

17.1.4  Connection210

17.1.5  Statement211

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章  eecutor包293

22.1  背景知识293

22.1.1  基于cglib的动态代理293

22.1.2  javassist框架的使用295

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

22.1.4  ThreadLocal302

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  Guava383

26.2  Tomcat384

26.3  Redis384

26.4  Dubbo385

26.5  React385

 

  • 商品评价
  • 交易规则


  • 发货方式


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

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


  • 退款说明


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

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

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

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

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

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

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


  • 注意事项


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

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

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

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

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

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


  • 送码声明


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

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


热门推荐
浏览记录