到目前为止,MyBatis的源代码也看的七七八八了,不得不说MyBatis的代码写的真的很不错,逻辑清晰的同时功能还很齐全,同时可以发现,MyBatis中使用了非常多的设计模式,接下来简单总结下: 建造者模式 在MyBaits的各种对象构建 … 继续阅读 MyBatis代码整洁之道之设计模式
标签:MyBatis
MyBatis 的秘密(九)插件
Plugins 一款好的框架,都是支持定制化的,MyBatis也不例外,MyBatis支持用户自定义插件,在MyBatis的几个核心类的方法调用前,后进行统一的处理。使用方式如下: 首先,定义插件行为,实现Interceptor接口,同时, … 继续阅读 MyBatis 的秘密(九)插件
MyBatis 的秘密(八)动态SQL
动态SQL 说到动态SQL,就不得不提Script,Java作为一个静态语音,代码需要先编译,然后再运行,虽然带来了效率,但是却损失了灵活性。 Spring为此还专门提供了一套SpEL用来封装Java脚本语言API 在MyBatis中,也支 … 继续阅读 MyBatis 的秘密(八)动态SQL
MyBatis 的秘密(七)反射
MyBatis作为一款ORM框架,主要通过XML定义Object,这就难免用到反射,虽然JDK自带的反射已经方便使用,但是MyBatis依然结合业务功能,将反射功能封装成一个更加易用的包,这个包就在reflection中。 在解析MyBat … 继续阅读 MyBatis 的秘密(七)反射
MyBatis 的秘密(六)缓存
缓存 众所周知的,MyBatis 内置了二级缓存,对于一级缓存是默认打开的,而二级缓存需要手动开启。 接下来,我们探索一下MyBatis的缓存。 首选在官方文档中,我们可以找到MyBatis的相关配置: 全局配置: cacheEnabled … 继续阅读 MyBatis 的秘密(六)缓存
MyBatis 的秘密(五)整体流程图
执行流程图 通过前面的分析,我们梳理了MyBatis从调用方法到返回结果的整个流程,这里我们简单的做一个总结: 先上图,按道理来说时序图应该是最合适的,但是我觉得上面的文字过多。接下来结合上面的图详细说说MyBatis从启动到返回结果的流程 … 继续阅读 MyBatis 的秘密(五)整体流程图
MyBatis 的秘密(四)ResultSetHandler
ResultHandler 前面说过,StatmentHandler最后在处理查询结果的时候,会调用ResultSetHandler处理结果,在看完ResultSetHandler之后,本来想分析一下它的代码,但是存在两个问题: 由于涉及到 … 继续阅读 MyBatis 的秘密(四)ResultSetHandler
MyBatis 的秘密(三)StatementHandler
StatementHandler 前面我们说过,Executor 的主要职责是执行底层映射语句。 但是通过源码我们可以发现,Executor执行的这些功能,都是通过StatementHandler来完成的,Executor只是负责缓存或者选 … 继续阅读 MyBatis 的秘密(三)StatementHandler
MyBatis 的秘密(二)Executor
Executor 在MyBatis中有关Executor的配置如下: 设置名 描述 有效值 默认值 defaultExecutorType 配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepare … 继续阅读 MyBatis 的秘密(二)Executor
MyBatis 的秘密(一)Transaction
public List<Country> selectById()throws IOException { try (Reader reader = Resources.getResourceAsReader(“mybatis- … 继续阅读 MyBatis 的秘密(一)Transaction