随笔分类 -  MyBatis源码分析

摘要:MyBatis缓存 我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以把查询结果存储起来,下次查询同样的内容的时候直接从内存中获取数据即可,这样在某 阅读全文
posted @ 2017-06-12 23:39 五月的仓颉 阅读(11357) 评论(8) 推荐(6) 编辑
摘要:MyBatis插件原理 从<plugins>解析开始 本文分析一下MyBatis的插件实现原理,在此之前,如果对MyBatis插件不是很熟悉的朋友,可参看此文MyBatis7:MyBatis插件及示例 打印每条SQL语句及其执行时间,本文我以一个例子说明了MyBatis插件是什么以及如何实现。由于M 阅读全文
posted @ 2017-06-11 16:23 五月的仓颉 阅读(8424) 评论(2) 推荐(1) 编辑
摘要:示例代码 之前的文章说过,对于MyBatis来说insert、update、delete是一组的,因为对于MyBatis来说它们都是update;select是一组的,因为对于MyBatis来说它就是select。 本文研究一下select的实现流程,示例代码为: selectMailById方法的 阅读全文
posted @ 2017-06-11 12:44 五月的仓颉 阅读(5950) 评论(1) 推荐(1) 编辑
摘要:Configuration的newStatementHandler分析 SimpleExecutor的doUpdate方法上文有分析过: 这两天重看第5行的newStatementHandler方法的时候,发现方法上文在这个方法中分析地太简略了,这里过一遍一下Configuration的newSta 阅读全文
posted @ 2017-06-07 09:16 五月的仓颉 阅读(3411) 评论(0) 推荐(1) 编辑
摘要:打开一个会话Session 前文分析了MyBatis将配置文件转换为Java对象的流程,本文开始分析一下insert方法、update方法、delete方法处理的流程,至于为什么这三个方法要放在一起说,是因为: 示例代码为这段: 首先关注的是第2行的代码,ssf是SqlSessionFactory, 阅读全文
posted @ 2017-05-09 12:29 五月的仓颉 阅读(7044) 评论(5) 推荐(2) 编辑
摘要:元素设置 继续MyBatis的Configuration加载源码分析: 上回看到了第7行的<typeAlias>标签的解析,后面先暂时跳过<plugins>、<objectFactory>、<objectWrapperFactory>、<reflectorFactory>、<typeHandlers 阅读全文
posted @ 2017-05-08 18:34 五月的仓颉 阅读(4574) 评论(0) 推荐(1) 编辑
摘要:config.xml解析为org.w3c.dom.Document 本文首先来简单看一下MyBatis中将config.xml解析为org.w3c.dom.Document的流程,代码为上文的这部分: 第3行的代码实现为: 相当于就是将输入的路径转换为一个字符输入流并返回。 接着继续看静态块第4行的 阅读全文
posted @ 2017-05-06 10:36 五月的仓颉 阅读(6416) 评论(0) 推荐(6) 编辑
摘要:前言 之前一段时间写了【Spring源码分析】系列的文章,感觉对Spring的原理及使用各方面都掌握了不少,趁热打铁,开始下一个系列的文章【MyBatis源码分析】,在【MyBatis源码分析】文章的基础之上,可以继续分析数据库连接池、Spring整合MyBatis源码、Spring事物管理tx等等 阅读全文
posted @ 2017-05-01 15:39 五月的仓颉 阅读(5749) 评论(1) 推荐(8) 编辑